|
Subject: Re: [xsl] XSLT processor and substring-after From: JBryant@xxxxxxxxx Date: Wed, 13 Apr 2005 15:26:59 -0500 |
Sorry, but I've not used Perl's XML/XSL facilities. Perhaps one of the
list's other members has, though.
Jay Bryant
Bryant Communication Services
(presently consulting at Synergistic Solution Technologies)
"N Zhou" <zhou_naijun@xxxxxxxxxxx>
04/13/2005 03:05 PM
Please respond to
xsl-list@xxxxxxxxxxxxxxxxxxxxxx
To
xsl-list@xxxxxxxxxxxxxxxxxxxxxx
cc
Subject
Re: [xsl] XSLT processor and substring-after
Hi Jay,
Thank you very much! I think the path is correct, but my processor does
not
support XPath well. I'm usingXML::XSLT with a depedency on XML::Parser not
on XPath. Do you know Perl XSLT module supporting XPath 1.0 or higher? I
know Saxon but I prefer CGI script.
The full source data:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<wfs:FeatureCollection xmlns:wfs="http://www.opengis.net/wfs"
xmlns:gml="http://www.opengis.net/gml">
<gml:boundedBy>
<gml:Box srsName="epsg:4326">
<gml:coordinates>-89,43 -95,43</gml:coordinates>
</gml:Box>
</gml:boundedBy>
</wfs:FeatureCollection>
My XSL is:
<?xml version='1.0' ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:gml="http://www.opengis.net/gml"
xmlns:b="http://www.opengis.net/examples"
xmlns="http://www.fgdc.gov/fgdc/gc" xmlns:saxon="http://icl.com/saxon">
<xsl:output method="xml" standalone="yes" omit-xml-declaration="no"
encoding="ISO-8859-1"/>
<xsl:template match="/">
<Points>
<gml:boundedBy>
<gml:Envelope>
<xsl:variable name="coords1"
select="wfs:FeatureCollection/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>
</gml:Envelope>
</gml:boundedBy>
</Points>
</xsl:template>
</xsl:stylesheet>
Thanks again.
N Zhou
>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, N Zhou | Thread | Re: [xsl] XSLT processor and substr, James Fuller |
| Re: [xsl] Transforming XML Blockquo, James Fuller | Date | Re: RE: [xsl] Unusual Sort, Wendell Piez |
| Month |