Subject: RE: [xsl] 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: [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.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@yahoo.comwww.youpo@xxxxxxx > om</EMAIL> > <CUST_NAME>AAA</CUST_NAME> > <CUST_LAST_NAME>AAAA</CUST_LAST_NAME> > </mappings> > <mappings> > > <EMAIL>www.youpi@xxxxxxxxxxxxxxxxxx@yahoo.comwww.youpo@xxxxxxx > om</EMAIL> > <CUST_NAME>BBB</CUST_NAME> > <CUST_LAST_NAME>BBBB</CUST_LAST_NAME> > </mappings> > <mappings> > > <EMAIL>www.youpi@xxxxxxxxxxxxxxxxxx@yahoo.comwww.youpo@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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] XSLT document() function!!!!, michel geadah | Thread | Re: [xsl] XSLT document() function!, Mukul Gandhi |
RE: [xsl] SQL SELECT statement in X, Michael Kay | Date | RE: [xsl] XSLT 2.0 & Grouping for-, Michael Kay |
Month |