Subject: Re: [xsl] Could not select the text() of both parent & child nodes simultaneously From: David Carlisle <davidc@xxxxxxxxx> Date: Tue, 15 Jun 2010 15:10:32 +0100 |
Hi All,
I am stucked with an XSLT 1.0 XPath issue when trying to reference the content of either a parent/child nodes at the same time without much luck. Let's have a look at the XML document I am trying to parse:
If you are using saxon 9, why do you ask for an XSLt 1 solution, since you are using XSLT 2?<p> < < <strong>World Cup Team:</strong>br clear="none" />a shape="rect">Brasil</a>(30 goals)< <br clear="none" />a shape="rect">Argentina</a>(25 goals)< <br clear="none" />a shape="rect">Germany</a>(22 goals)< <br clear="none" />a shape="rect">USA</a>(15 goals)< ....... </p>br clear="none" /> The desire transformation outcome would to produce the following XML document: <team>Brasil (30 goals)<team> <team>Argentina (25 goals)<team> <team>Germany (22 goals)<team> <team>USA (15 goals)<team> ......
The following stylesheets achieve either of the text() but not both:
<-- Only get the teams but not goals -----> <xsl:template match="ns:p[ns:strong='World Cup Team:']"> <xsl:for-each select="ns:a/text()[normalize-space() != '']"> <team><xsl:value-of select="normalize-space()"/></team> </xsl:for-each> </xsl:template>
< -- Get all teams and goals for all nodes on the same line continuously. Similar to printf statement --> <xsl:template match="ns:p[ns:strong='World Cup Team:']"> <xsl:for-each select="ns:a/text()[normalize-space() != '']"> <team><xsl:value-of select="../../normalize-space()"/></team> </xsl:for-each> </xsl:template>
< --- Only get the goals but not teams ---> <xsl:template match="ns:p[ns:strong='World Cup Team:']"> <xsl:for-each select="text()[normalize-space() != '']"> <team><xsl:value-of select="normalize-space()"/></team> </xsl:for-each> </xsl:template>
I am using JDOM and Saxon 9.1 to carry out the transformation on Windows XP.
________________________________________________________________________ The Numerical Algorithms Group Ltd is a company registered in England and Wales with company number 1249803. The registered office is: Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Could not select the text() o, Jack Bush | Thread | Re: [xsl] Could not select the text, Jack Bush |
[xsl] Could not select the text() o, Jack Bush | Date | [xsl] "XML for the Long Haul" progr, B Tommie Usdin |
Month |