[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] Some help with xsl transform and filter please


Subject: RE: [xsl] Some help with xsl transform and filter please
From: "Josh Canfield" <Josh.Canfield@xxxxxxxxxxxx>
Date: Thu, 25 Mar 2004 10:33:43 -0800

Your path is incomplete. 

<xsl:template match="/">
	<xsl:for-each select="struct/member/value[string='Syndicated']">

Your template match is putting your context at the root of the document so your for-each is looking for a "struct" node relative to the root, but there isn't one.

You can fully specify the path like this:
<xsl:for-each select="methodResponse/params/param/value/array/data/value/struct/member/value[string='Syndicated']">

This explicitly tells the xpath processor where to find the nodes.

Josh

-----Original Message-----
From: Dylan Barber [mailto:dylan.barber@xxxxxxxxxxxxx]
Sent: Thursday, March 25, 2004 9:33 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: [xsl] Some help with xsl transform and filter please


Okay hope I am not asking something so basic everyone thinks I am a dunce but i have an xml document that comes from a web service like this

  <?xml version="1.0" encoding="iso-8859-1" ?> 
           <methodResponse>
                <params>
                       <param>
                            <value>
                                <array>
                                    <data>
                                         <value>
                                              <struct>
                                                 <member>
                                                      <name>feedid</name> 
                                                      <value>
                                                             <string>2403</string> 
                                                      </value>
                                                 </member>
                                                 <member>
                                                      <name>status</name> 
                                                      <value>
                                                            <string>Syndicated</string> 
                                                      </value>
                                                 </member>
                                              </struct>
                                        </value>
                                  </data>
                             </array>
                       </value>
                 </param>
            </params>
  </methodResponse>

I have tried to transform it with something like this 

<xsl:template match="/">
	<xsl:for-each select="struct/member/value[string='Syndicated']">
		<xsl:value-of select="name" />
		:
		<xsl:value-of select="string" />
		;<br />
		</xsl:for-each>
	</xsl:for-each>
</xsl:template>

but this doesnt seem to work.  I am a newbie with this whole thing and really need some guidance on how this whole xsl xml thing goes together.  Sorry if I have missed the obvious or broken any rules.

Dylan Barber (CIW Professional, A+ Technician, Web Designer, Web Developer)

home phone-:- (785) 765-2664
work phone-:- (785) 539-3565 x1034
email-:- dylan.barber@xxxxxxxxxxxxx
homesite-:- http://www.codegalaxy.com


Current Thread
Keywords