XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Ian ShulerSubject: Some node navigation help please
Author: Ian Shuler
Date: 20 Jun 2005 11:30 AM
Hi folks...

I keep getting confused when I am navigating an XML doc for either an xsl:template declaration or when using xsl:for-each select="".

For example, I have a document with this structure:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/
XMLSchema-instance">
<soapenv:Body>
<getResponse xmlns="">
<result>
<deletedRecords>
<deletedDate>2004-07-07T17:07:20.000Z</deletedDate>
<id>00130000002K9RrAAK</id>
</deletedRecords>
<deletedRecords>
<deletedDate>2004-07-07T17:07:21.000Z</deletedDate>
<id>00130000002K9RsAAK</id>
</deletedRecords>
</result>
</getResponse>
</soapenv:Body>
</soapenv:Envelope>

In a simple transform, I have been declaring in my stylesheet <xsl:template match-"/"> to apply this to the whole xml doc.

Here is where I keep getting confused. I want to just select the <id> element values write them out to an xml like:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<deleteIds>
<xsl:for-each select="result/deletedRecords">
<Id>
<xsl:for-each select="id">
<xsl:value-of select="."/>
</xsl:for-each>
</Id>
</xsl:for-each>
</deleteIds>
</xsl:template>
</xsl:stylesheet>

However, my navigation of the nodes is wrong.

What am I missing/forgetting in my navigation of the nodes? And is there a simple way to remember navigation patterns?

TIA, Ian

Postnext
(Deleted User) Subject: Some node navigation help please
Author: (Deleted User)
Date: 20 Jun 2005 01:23 PM
you first xpath result/deleterecord/id is wrong in the context

it should be:

soapenv:Envelope/soapenv:Body/result/deleterecord/id. you also need to declare the soapenv namespace in your stylesheet.


Postnext
Ian ShulerSubject: Some node navigation help please
Author: Ian Shuler
Date: 20 Jun 2005 01:50 PM
OK...tried that, still no go...I included the soapenv namespace and did a literal path to the <id> element in my xsl. At that point I should be able to use <xsl:value-of select="." /> to place the <id> element value into the <Id> tags.

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<deleteIds>
<xsl:for-each select="soapenv:Envelope/soapenv:Body/getDeletedResponse/result/deletedRecords/id">
<Id>
<xsl:value-of select="."/>
</Id>
</xsl:for-each>
</deleteIds>
</xsl:template>
</xsl:stylesheet>

This is the input again:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/
XMLSchema-instance">
<soapenv:Body>
<getDeletedResponse xmlns="urn:foo.soap.bar.com">
<result>
<deletedRecords>
<deletedDate>2004-07-07T17:07:20.000Z</deletedDate>
<id>00130000002K9RrAAK</id>
</deletedRecords>
<deletedRecords>
<deletedDate>2004-07-07T17:07:21.000Z</deletedDate>
<id>00130000002K9RsAAK</id>
</deletedRecords>
</result>
</getDeletedResponse>
</soapenv:Body>
</soapenv:Envelope>

Thanks again...Ian

Postnext
(Deleted User) Subject: Some node navigation help please
Author: (Deleted User)
Date: 20 Jun 2005 02:09 PM
you didn't take care of the default namespace in your <getDeletedResponse> element. the right xpath should be:

soapenv:Envelope/soapenv:Body/a:getDeletedResponse/a:result/a:deletedRecords/a:id
and declare 'a' as namespace urn:foo.soap.bar.com in your stylesheet.

Posttop
Ian ShulerSubject: Some node navigation help please
Author: Ian Shuler
Date: 20 Jun 2005 04:18 PM
Darn it...you're right Song....I overlooked that....thanks a ton for your help

Ian

 
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.