Subject: Re: [xsl] XSLT processor and substring-after From: "N Zhou" <zhou_naijun@xxxxxxxxxxx> Date: Wed, 13 Apr 2005 15:05:29 -0500 |
From: JBryant@xxxxxxxxx Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Re: [xsl] XSLT processor and substring-after Date: Wed, 13 Apr 2005 14:48:00 -0500
With the following source XML (yours with the namespace removed for simplicity's sake):
<?xml version="1.0" encoding="UTF-8"?> <boundedBy> <Box> <coordinates>89,43 90,43.5</coordinates> </Box> </boundedBy>
I got the following stylesheet to work with Saxon 8:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/"> <xsl:variable name="coords1" select="/boundedBy/Box/coordinates"/> <out> <lowerCorner> <xsl:value-of select="substring-before($coords1, ' ')"/> </lowerCorner> <upperCorner> <xsl:value-of select="substring-after($coords1,' ')"/> </upperCorner> </out> </xsl:template>
</xsl:stylesheet>
To produce the following output:
<?xml version="1.0" encoding="UTF-8"?> <out> <lowerCorner>89,43</lowerCorner> <upperCorner>90,43.5</upperCorner> </out>
My guess is that you've not properly specified the path in the select part of the variable or that your processor has a problem. Perhaps you should shows us more of the source document, so that we can help you develop a better path or help you determine that the problem is your processor.
HTH
Jay Bryant Bryant Communication Services (presently consulting at Synergistic Solution Technologies)
"N Zhou" <zhou_naijun@xxxxxxxxxxx> 04/13/2005 01:57 PM Please respond to xsl-list@xxxxxxxxxxxxxxxxxxxxxx
To xsl-list@xxxxxxxxxxxxxxxxxxxxxx cc
Subject [xsl] XSLT processor and substring-after
Hi,
I'm using XML::XSLT Perl module to transform XML data: <gml:boundedBy> <gml:Box> <gml:coordinates>89,43 90,43.5</gml:coordinates> </gml:Box> </gml:boundedBy>
I want to split the 89,42 90, 43.5 to two substrings as : <gml:boundedBy> <gml:Envelope> <gml:lowerCorner>89,43</gml:lowerCorner> <gml:upperCorner>90,43.5</gml:upperCorner> </gml:Envelope> </gml:boundedBy>
I tried substring-after but didn't get results (XML::XSLT returned blank): <xsl:variable name="coords1" select="gml:boundedBy/gml:Box/gml:coordinates"/> <gml:lowerCorner> <xsl:value-of select="substring-before($coords1, ' ')"/> </gml:lowerCorner> <gml:upperCorner> <xsl:value-of select="substring-after($coords1,' ')"/> </gml:upperCorner>
Could anyone tell me why I cannot split the string: are there errors in my
XSL; or, the module XML::XSLT does not support substring-after (it uses XPath1.3)? Anyone can recommend me another Perl module of XSLT processor?
Thank you very much!
n zhou
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XSLT processor and substr, JBryant | Thread | Re: [xsl] XSLT processor and substr, JBryant |
[xsl] xsl:for-each-group, group-sta, Kate Atkins | Date | RE: [xsl] only two chars after a sl, Michael Kay |
Month |