RE: [xsl] How to check whether any of child node with particular tag name h as non-empty String value

Subject: RE: [xsl] How to check whether any of child node with particular tag name h as non-empty String value
From: Ivan Pedruzzi <ipedruzz@xxxxxxxxxxxx>
Date: Fri, 31 Jan 2003 15:44:03 -0500
Try this

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" 
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
 <xsl:output method="html"/>
 <xsl:template match="ATTACHMENT">
  <html><body><P>
     <B>ATTACHMENT:</B>
     <xsl:for-each
select="child::ATTACHMENT_NAME[string(normalize-space(.))]">
      <xsl:variable name="href"
select="following-sibling::ATTACHMENT_LINK[1]"/>
      <br/>
      <a href="{$href}">
       <xsl:apply-templates/>
      </a>
     </xsl:for-each>
    </P></body></html>
   </xsl:template>
</xsl:stylesheet>  	


Ivan

> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of 
> Wang, Dongzhi (ACF)
> Sent: Friday, January 31, 2003 3:14 PM
> To: 'XSL-List@xxxxxxxxxxxxxxxxxxxxxx'
> Subject: [xsl] How to check whether any of child node with 
> particular tag name h as non-empty String value
> 
> 
> Hi All,
> 
> I run into a problem where I'm not able to check  whether any 
> of child node with particular tag name has empty String value.  
> 
> Here's the XML:
> 
> 	<ATTACHMENT>
> 		<ATTACHMENT_NAME></ATTACHMENT_NAME>
> 		<ATTACHMENT_LINK> http://yahoo.com </ATTACHMENT_LINK>
> 		<ATTACHMENT_NAME> link </ATTACHMENT_NAME>
> 		<ATTACHMENT_LINK> http://msn.com </ATTACHMENT_LINK>
> 	</ATTACHMENT>
> 
> The requirement is to do something ANY of the 
> <ATTACHMENT_NAME> elemement has non-empty String.  Here's the 
> XSL I wrote:
> 
>   	<xsl:template match="ATTACHMENT">
> 		<xsl:if 
> test="string(normalize-space(child::ATTACHMENT_NAME))">
> 			<P>
> 				<B>ATTACHMENT:</B>
> 				<xsl:for-each select="ATTACHMENT_NAME">
> 					<xsl:variable 
> name="href" select="following-sibling::ATTACHMENT_LINK" />
> 					<a href ="{$href}">
> 						<xsl:apply-templates />
> 					</a>
> 					<br/>
> 				</xsl:for-each>
> 			</P>
> 		</xsl:if>
>   	</xsl:template>
> 
> But from the result I got, seems like the decision is only 
> based on the first <ATTACHMENT_NAME> element it found, and 
> totally ignore the later ones. i.e. if the first 
> <ATTACHMENT_NAME> has empty String value but the second one 
> has String value "link" in it, it won't fall into the if block. 
> 
> Thanks in advance for any suggestions!
> 
> Dongzhi
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread