This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: XPath weirdness!!


OK. I hope I can be more clear with this email.

Here is part of my XML source:
<Query>
  <SpatialQuery>
   <Buffer distance="100" units="miles">
    <Point x="-122.5281" y="37.635" />
    <Point x="-122.4521" y="37.700" />
    <Point x="-122.4000" y="37.750" />
    <Point x="-122.3100" y="37.820" />
   </Buffer>
  </SpatialQuery>
 </Query>

I want this part of the output to be:
 <MULTIPOINT>
       <POINT x="-122.5281" y="37.635" />
       <POINT x="-122.4521" y="37.700" />
       <POINT x="-122.4000" y="37.750" />
       <POINT x="-122.3100" y="37.820" />
</MULTIPOINT>


This is part of the XSL that I am using to transform the above:
<xsl:when test="//SpatialQuery/Buffer">
<!-- I need the "//" to get back the <MULTIPOINT> and <POINT> tags -->
   <MULTIPOINT>
          <xsl:for-each select="//Point">
                <POINT>
                <xsl:attribute name="x">
                        <xsl:value-of select="//@x"/>  <!--
THIS GIVES ME THE "X" values -->
                </xsl:attribute>
                <xsl:attribute name="y">
                        <xsl:value-of select="/@y"/>   <!-- HERE IF I USE
"//@y" I GET THE "

&x#3c" ERROR -->
                </xsl:attribute>
               </POINT>
        </xsl:for-each>
    </MULTIPOINT>
</xsl:when>


Julian Reschke wrote:

> I'm not sure what the problem that reported is... But:
>
> *why* are you using the // syntax at all?
>
> "//@y" finds *all* attributes named "y" in the document, and then returns
> the text value of the first one (AFAIK). Is this *really* what you want?
>
> If you clearly describe what you source format is and which output you need,
> people on the list will be able to suggest much better (and faster) XSLT
> code...
>
> > -----Original Message-----
> > From: owner-xsl-list@lists.mulberrytech.com
> > [mailto:owner-xsl-list@lists.mulberrytech.com]On Behalf Of Kris
> > Kolodziej
> > Sent: Wednesday, July 25, 2001 7:14 PM
> > To: xsl-list@lists.mulberrytech.com
> > Subject: [xsl] XPath weirdness!!
> >
> >
> > This is related to my previous problem with the "&x#3c." So I figured
> > out that I was doing something wrong with the XPath locations...However,
> > now I am experiencing some weird things with XPath. Take the following
> > example for instance:
> >
> > This works but it only give me the "x" value (and I sure do want to get
> > both x AND y).
> > Notice that for "y" I only have "/@y". This is because when I do the
> > same thing as I did for "x" (meaning writing   "<xsl:value-of
> > select="//@y"/>" )  I get the "&x#3c" error!!! WHY??!
> >
> >
> >  <xsl:when test="//SpatialQuery/Buffer">
> >    <MULTIPOINT>
> >           <xsl:for-each select="//Point">
> >                 <POINT>
> >                 <xsl:attribute name="x">
> >                         <xsl:value-of select="//@x"/>
> >                 </xsl:attribute>
> >                 <xsl:attribute name="y">
> >                         <xsl:value-of select="/@y"/>
> >                 </xsl:attribute>
> >                </POINT>
> >         </xsl:for-each>
> >     </MULTIPOINT>
> >
> >
> > It also works when I do the vice versa of what I have ("/@x" and "//@y")
> > but I can't have it written the same way.
> >
> >
> >  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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]