-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of
michel geadah
Sent: 08 August 2003 09:16
To: XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] 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(_dot_)youpi(_at_)yahoo(_dot_)com</CADR_E_MAIL_1>
</mappings>
<mappings Record="2">
<CADR_E_MAIL_1>www(_dot_)youpa(_at_)yahoo(_dot_)com</CADR_E_MAIL_1>
</mappings>
<mappings Record="3">
<CADR_E_MAIL_1>www(_dot_)youpo(_at_)yahoo(_dot_)com</CADR_E_MAIL_1>
</mappings>
</BBSD_CUST_ADDRESSES>
My output is:
<?xml version="1.0" encoding="utf-8" ?>
<WCUSTOMERS>
<mappings>
<EMAIL>www(_dot_)youpi(_at_)yahoo(_dot_)comwww(_dot_)youpa@yahoo(_dot_)comwww(_dot_)youpo(_at_)yahoo(_dot_)c
om</EMAIL>
<CUST_NAME>AAA</CUST_NAME>
<CUST_LAST_NAME>AAAA</CUST_LAST_NAME>
</mappings>
<mappings>
<EMAIL>www(_dot_)youpi(_at_)yahoo(_dot_)comwww(_dot_)youpa@yahoo(_dot_)comwww(_dot_)youpo(_at_)yahoo(_dot_)c
om</EMAIL>
<CUST_NAME>BBB</CUST_NAME>
<CUST_LAST_NAME>BBBB</CUST_LAST_NAME>
</mappings>
<mappings>
<EMAIL>www(_dot_)youpi(_at_)yahoo(_dot_)comwww(_dot_)youpa@yahoo(_dot_)comwww(_dot_)youpo(_at_)yahoo(_dot_)c
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(_dot_)youpi(_at_)yahoo(_dot_)com</EMAIL>
<CUST_NAME>AAA</CUST_NAME>
<CUST_LAST_NAME>AAAA</CUST_LAST_NAME>
</mappings>
<mappings>
<EMAIL>www(_dot_)youpa(_at_)yahoo(_dot_)com</EMAIL>
<CUST_NAME>BBB</CUST_NAME>
<CUST_LAST_NAME>BBBB</CUST_LAST_NAME>
</mappings>
<mappings>
<EMAIL>www(_dot_)youpo(_at_)yahoo(_dot_)com</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