Subject: RE: XSLT document() function!!!!
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Fri, 8 Aug 2003 12:13:13 +0100
|
> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of
> michel geadah
> Sent: 08 August 2003 09:16
> To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx
> Subject: XSLT document() function!!!!
>
>
> HI...
> A little question:
> My input xml document (BBSD_CUSTOMERS.xml) is:
>
> <?xml version="1.0" encoding="utf-8" ?>
> <BBSD_CUSTOMERS>
> <mappings Record="1">
> <CUST_B_NAME>AAA</CUST_B_NAME>
> <CUST_S_NAME>AAAA</CUST_S_NAME>
> </mappings>
> <mappings Record="2">
> <CUST_B_NAME>BBB</CUST_B_NAME>
> <CUST_S_NAME>BBBB</CUST_S_NAME>
> </mappings>
> etc..
> </BBSD_CUSTOMERS>
>
> My xslt document (BBSD_CUSTOMERS.xsl) is:
>
> <?xml version="1.0" encoding="utf-8" ?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> version="1.0">
> <xsl:output method="xml" />
> <xsl:variable name="FILE"
> select="document('BBSD_CUST_ADDRESSES.xml')"/>
> <xsl:template match="/">
> <xsl:element name="WCUSTOMERS">
> <xsl:for-each select="//BBSD_CUSTOMERS/mappings">
> <xsl:element name="{name()}">
>
>
> <EMAIL>
> <xsl:apply-templates select="$FILE/BBSD_CUST_ADDRESSES
> /mappings/CADR_E_MAIL_1"/>
> </EMAIL>
For every customer, you are processing all the customer addresses. Just
change your logic so you only process the address for the selected
customer.
Michael Kay
>
> <xsl:element name="CUST_NAME">
> <xsl:value-of select="CUST_B_NAME" />
> </xsl:element>
>
> <xsl:element name="CUST_LAST_NAME">
> <xsl:value-of select="CUST_S_NAME" />
> </xsl:element>
> </xsl:element>
> </xsl:for-each>
> </xsl:element>
> </xsl:template>
> </xsl:stylesheet>
>
> The BBSD_CUST_ADDRESSES.xml (xml document that is referenced
> from inside the
> xslt) is:
>
> <?xml version="1.0" encoding="utf-8" ?>
> <BBSD_CUST_ADDRESSES>
> <mappings Record="1">
> <CADR_E_MAIL_1>www.youpi@xxxxxxxxx</CADR_E_MAIL_1>
> </mappings>
> <mappings Record="2">
> <CADR_E_MAIL_1>www.youpa@xxxxxxxxx</CADR_E_MAIL_1>
> </mappings>
> <mappings Record="3">
> <CADR_E_MAIL_1>www.youpo@xxxxxxxxx</CADR_E_MAIL_1>
> </mappings>
> </BBSD_CUST_ADDRESSES>
>
> My output is:
>
> <?xml version="1.0" encoding="utf-8" ?>
> <WCUSTOMERS>
> <mappings>
>
> <EMAIL>www.youpi@xxxxxxxxxxxxxxxxxx@y...@xxxxxxx
> om</EMAIL>
> <CUST_NAME>AAA</CUST_NAME>
> <CUST_LAST_NAME>AAAA</CUST_LAST_NAME>
> </mappings>
> <mappings>
>
> <EMAIL>www.youpi@xxxxxxxxxxxxxxxxxx@y...@xxxxxxx
> om</EMAIL>
> <CUST_NAME>BBB</CUST_NAME>
> <CUST_LAST_NAME>BBBB</CUST_LAST_NAME>
> </mappings>
> <mappings>
>
> <EMAIL>www.youpi@xxxxxxxxxxxxxxxxxx@y...@xxxxxxx
> om</EMAIL>
> <CUST_NAME>CCC</CUST_NAME>
> <CUST_LAST_NAME>CCCC</CUST_LAST_NAME>
> </mappings>
> </WCUSTOMERS>
>
> How can i modify my xslt to get the following output:
>
> <?xml version="1.0" encoding="utf-8" ?>
> <WCUSTOMERS>
> <mappings>
> <EMAIL>www.youpi@xxxxxxxxx</EMAIL>
> <CUST_NAME>AAA</CUST_NAME>
> <CUST_LAST_NAME>AAAA</CUST_LAST_NAME>
> </mappings>
> <mappings>
> <EMAIL>www.youpa@xxxxxxxxx</EMAIL>
> <CUST_NAME>BBB</CUST_NAME>
> <CUST_LAST_NAME>BBBB</CUST_LAST_NAME>
> </mappings>
> <mappings>
> <EMAIL>www.youpo@xxxxxxxxx</EMAIL>
> <CUST_NAME>CCC</CUST_NAME>
> <CUST_LAST_NAME>CCCC</CUST_LAST_NAME>
> </mappings>
> </WCUSTOMERS>
>
> THANKS...
>
> _________________________________________________________________
> Protect your PC - get McAfee.com VirusScan Online
> http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|