Thanks for the suggesion. But I forgot to mention I should only output
"<B>ATTACHMENT:</B>" EXACTLY one time, like:
ATTACHMENT: link1
link2
With your suggestion, the output will be like:
ATTACHMENT: link1
ATTACHMENT: link2
Could you please give me any other suggestion?
Thanks!
Dongzhi
-----Original Message-----
From: Ivan Pedruzzi [mailto:ipedruzz(_at_)progress(_dot_)com]
Sent: Friday, January 31, 2003 3:44 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] How to check whether any of child node with
particular tag name h as non-empty String value
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(_at_)lists(_dot_)mulberrytech(_dot_)com
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of
Wang, Dongzhi (ACF)
Sent: Friday, January 31, 2003 3:14 PM
To: 'XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)com'
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