[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: XSLT processor and substring-after

Subject: Re: XSLT processor and substring-after
From: JBryant@xxxxxxxxx
Date: Wed, 13 Apr 2005 15:26:59 -0500
xsl substr
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:  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:  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
> 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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.