|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE:RE: Join XMLs with XLST with ralative data
Hi Jarno and all Gurus ,
Thanks for the reply ...earlier i was in digest list
now i am in daily-list..
I have modified my xslt as suggested but still it is
not working properly so the out put with the two xml s
i.e.
22.xml
<STKAVAILABLE>
<STKMAST Alias="01" STKCODE="31" STKDESC="FANTA ">
<STKDESC IndexID="5017"/>
</STKMAST>
<STKMAST Alias="01" STKCODE="30" STKDESC="PEPSI">
<STKDESC IndexID="5017"/>
</STKMAST>
??..
</STKAVAILABLE>
buy22.xml
<buyermaster>
<name id="a001" deptid="01">
<bstkcode>31</bstkcode>
</name>
<name id="a010">
<bstkcode>40</bstkcode>
</name>
<name id="a003" deptid="10">
<bstkcode>31</bstkcode>
<bstkcode>20</bstkcode>
</name>
</buyermaster>
And out put I want is ???.
< tran>
<stock>
<stockcode>31</stockcode>
<name id="a001" deptid="01">
<name id="a003" deptid="10">
</stock>
<stock>
<stockcode>30</stockcode>
<name id="a010">
</stock>
??.and so on if stock code from 22.xml matches
bstkcode from buy22.xml
</tran>
so based on suggestion I have modified my xslt to :
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:key name="rows-bstkcode" match="name"
use="bstkcode"/>
<xsl:variable name="x_22"
select="document('22.xml')"/>
<xsl:variable name="buy22"
select="document('buy22.xml')"/>
<xsl:template match="/">
<tran>
<xsl:for-each
select="$x_22/STKAVAILABLE/STKMAST">
<xsl:variable name="STKCODE1"
select="@STKCODE"/>
<xsl:for-each select="$buy22/buyermaster">
<stock>
<stockcode> <xsl:value-of
select="$STKCODE1" /></stockcode>
<xsl:for-each
select="key('rows-bstkcode',$STKCODE1)">
<xsl:copy> <xsl:copy-of
select="bstkcode"/>
</xsl:copy>
</xsl:for-each>
</stock>
</xsl:for-each>
</xsl:for-each>
</tran>
</xsl:template>
</xsl:stylesheet>
but out put I am getting still is :
<?xml version="1.0" encoding="UTF-8" ?>
<tran>
<stock>
<stockcode>31</stockcode>
</stock>
<stock>
<stockcode>30</stockcode>
</stock>
<stock>
<stockcode>32</stockcode>
</stock>
</tran>
Pls Help me
Mangesh
----------From: Jarno.Elovirta@xxxxxxxxx
> Hi,
>
> > I am using join.xslt
> > <xsl:stylesheet version="1.0"
> > xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> > <xsl:key name="rows-bstkcode" match="bstkcode"
> > use="bstkcode" />
>
> The key should be
>
> <xsl:key name="rows-bstkcode" match="name"
> use="bstkcode" />
>
> > <xsl:for-each
> select="$x_22/STKAVAILABLE/STKMAST">
>
> If you only want the STKCODE 31, i.e. the first one,
> this should be
>
> <xsl:for-each
> select="$x_22/STKAVAILABLE/STKMAST[1]">
>
> > <xsl:for-each select="$buy22">
> > <xsl:copy-of select="key('rows-bstkcode',
> > $STKCODE)
> > /*[name() != 'bstkcode']" />
> >
> > </xsl:for-each>
>
> This should be e.g.
>
> <xsl:for-each select="$buy22">
> <xsl:for-each select="key('rows-bstkcode',
> $STKCODE)">
> <xsl:copy>
> <xsl:copy-of select="@id" />
> </xsl:copy>
> </xsl:for-each>
>
> Because what you had would output
>
> <tran>
> <STKMAST Alias="01" STKCODE="31">
> <address/>
> <address/>
> </STKMAST>
> </tran>
>
> Cheers,
>
> Jarno
>
>
>
> __________________________________
> Do you Yahoo!?
> Yahoo! Calendar - Free online calendar with sync to
> Outlook(TM).
> http://calendar.yahoo.com
__________________________________
Do you Yahoo!?
Yahoo! Calendar - Free online calendar with sync to Outlook(TM).
http://calendar.yahoo.com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








