|
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 16:31:19 -0500 |
Assuming your xml source is
<?xml version="1.0"?>
<root>
<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>
<ATTACHMENT>
<ATTACHMENT_NAME>link2</ATTACHMENT_NAME>
<ATTACHMENT_LINK>http://msn.com</ATTACHMENT_LINK>
</ATTACHMENT>
</root>
You could do
<?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="/">
<html><body>
<P><B>ATTACHMENT:</B></P>
<xsl:for-each select="root/ATTACHMENT">
<xsl:for-each
select="child::ATTACHMENT_NAME[string(normalize-space(.))]">
<xsl:variable name="href"
select="following-sibling::ATTACHMENT_LINK[1]"/>
<a href="{$href}"><xsl:apply-templates/></a>
<br/>
</xsl:for-each>
</xsl:for-each>
</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 4:06 PM
> To: 'xsl-list@xxxxxxxxxxxxxxxxxxxxxx'
> Subject: RE: [xsl] How to check whether any of child node
> with particular tag name h as non-empty String value
>
>
>
> 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@xxxxxxxxxxxx]
> Sent: Friday, January 31, 2003 3:44 PM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> 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@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
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] How to check whether any , Wang, Dongzhi (ACF) | Thread | RE: [xsl] How to check whether any , cknell |
| RE: [xsl] Quality XSL Debugging Too, glaprade | Date | Re: [xsl] does Xerces2 Java Parser , Joseph Kesselman |
| Month |