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
Posttop
satya UppaluriSubject: node comparision
Author: satya Uppaluri
Date: 13 Jun 2006 04:54 PM


Hi,
I have a requirement to process xml document based following conditions
1. loop throw the document for each record.
2. process the record based on BPPLCode.
I have to produce one line of output for each BPPLCode with in Record node.
So in this example I will get three rows of output data (flat file output)
however i need to also test if
BusPartnerCodeValue (i.e. D06001 here) and BusPartnerCodeTypeCode (i.e. 00003) are equal in two nodes within BPPLCode.
we can ignore ProductLevel/ProductLevelCode here.
i.e. here in this eaxple BPPLCode[1] and BPPLCode[2] nodes are identical as per business rules.
(neverthless to say that BPPLCode can occur 0 to many times as per schema.)

I have to produce only two rows of output data in this case
(one row for BPPLCode[1] and BPPLCode[2] as these two are treated identical) and one row for BPPLCode[3]

xml looks like this

<message>
<records>
<record>
<BPPLCode>
<ProductLevel>
<ProductLevelCode>00001</ProductLevelCode>
</ProductLevel>
<BusPartnerCodeType>
<BusPartnerCodeTypeCode>00003</BusPartnerCodeTypeCode>
</BusPartnerCodeType>
<BusPartnerCodeValue>D06001</BusPartnerCodeValue>
</BPPLCode>
<BPPLCode>
<ProductLevel>
<ProductLevelCode>00003</ProductLevelCode>
</ProductLevel>
<BusPartnerCodeType>
<BusPartnerCodeTypeCode>00003</BusPartnerCodeTypeCode>
</BusPartnerCodeType>
<BusPartnerCodeValue>D06001</BusPartnerCodeValue>
</BPPLCode>

<BPPLCode>
<ProductLevel>
<ProductLevelCode>00001</ProductLevelCode>
</ProductLevel>
<BusPartnerCodeType>
<BusPartnerCodeTypeCode>00002</BusPartnerCodeTypeCode>
</BusPartnerCodeType>
<BusPartnerCodeValue>001</BusPartnerCodeValue>
</BPPLCode>

</record>
</records>
</message>



My xsl looks like this
<xsl:template match="/">
<xsl:for-each select="BusPartnerMsg/Records/Record">

<!-- i am not sure how to test the equality here -->
<xsl:if test="(BPPLCode/BusPartnerCodeValue = BPPLCode/BusPartnerCodeValue)
and BPPLCode/BusPartnerCodeType/BusPartnerCodeTypeCode=BPPLCode/BusPartnerCodeType/BusPartnerCodeTypeCode ">
TRUE
</xsl:if>


<!-- Create one record each based on BusPartnerCodeTypeCode -->
<xsl:for-each select="BPPLCode">

<!-- writing of record goes here -->


thanks for the help
Satya

 
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.