|
Subject: Re: [xsl] cross reference call of templates in xslt From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx> Date: Wed, 17 Dec 2008 17:37:08 -0500 |
Hi, I have a XSL-Stylesheet: ... My XML-File as Input: ... Now my Result: ?xml version="1.0" encoding="UTF-8"?> <X> <Dokument> <Primaerdokument> <Dateiname>test (080011538) (080011547).txt</Dateiname> </Primaerdokument>
1234567890 a i </Dokument> </XDOMEA>
So i need the information of the part of "Adresse" put into the part of "Primaerdokument".
I need the following result: ?xml version="1.0" encoding="UTF-8"?> <X> <Dokument> <Primaerdokument> <Dateiname>test (080011538) (080011547).txt</Dateiname> </Primaerdokument> <Name_ID>1234567890</Name_ID> <adr_name>a</adr_name> <adr_anrede>i</adr_anrede> </Dokument> </XDOMEA>
So: Is it possible to do with XSLT what i need?
And what do i need to change in my XSLT-File? I'm doing the Transformatino in Java with javax.xml.transform.Transformer
t:\ftemp>type richter.xml
<?xml version="1.0" encoding="UTF-8"?>
<X>
<Daten>
<Dokument>
<Primaerdokument>
<Dateiname>test.txt</Dateiname>
</Primaerdokument>
<Adress_Informationen>
<Absender>
<Referenz>d1139077-ed5b-4be8-9eaa-775ab4052c5c</Referenz>
</Absender>
</Adress_Informationen>
</Dokument>
<Adresse>
<Name>
<Name_ID>1234567890</Name_ID>
<Anrede>a</Anrede>
</Name>
<Anschrift>
<Strasse>i</Strasse>
</Anschrift>
</Adresse>
</Daten>
</X><xsl:template match="/">
<xsl:for-each select="/X">
<X>
<xsl:for-each select="Daten/Dokument">
<Dokument>
<xsl:call-template name="dokument"/>
</Dokument>
</xsl:for-each>
</X>
</xsl:for-each>
</xsl:template><xsl:template name="dokument">
<Primaerdokument>
<xsl:copy-of select="./Primaerdokument/Dateiname"/>
</Primaerdokument>
<xsl:call-template name="AdressenInfo" />
</xsl:template><xsl:template name="AdressenInfo">
<xsl:if test="./Adress_Informationen/Absender/Referenz">
<xsl:apply-templates select="../../Daten/Adresse">
<xsl:with-param name="referenceID"
select="./Adress_Informationen/Absender/Referenz" />
</xsl:apply-templates>
</xsl:if>
</xsl:template><xsl:template match="Adresse"> <xsl:param name="referenceID" /> <Name_ID><xsl:value-of select="./Name/Name_ID" /></Name_ID> <adr_name><xsl:value-of select="./Name/Anrede" /></adr_name> <adr_anrede><xsl:value-of select="./Anschrift/Strasse" /></adr_anrede> </xsl:template>
-- Upcoming XSLT/XSL-FO, UBL and code list hands-on training classes: : Sydney, AU 2009-01/02; Brussels, BE 2009-03; Prague, CZ 2009-03 Training tools: Comprehensive interactive XSLT/XPath 1.0/2.0 video Video sample lesson: http://www.youtube.com/watch?v=PrNjJCh7Ppg Video course overview: http://www.youtube.com/watch?v=VTiodiij6gE G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ Male Cancer Awareness Nov'07 http://www.CraneSoftwrights.com/s/bc Legal business disclaimers: http://www.CraneSoftwrights.com/legal
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] cross reference call of templ, Michael Richter | Thread | Re: [xsl] cross reference call of t, Michael Richter |
| [xsl] floats with float descendants, John Cavalieri | Date | [xsl] strange error in external dtd, Fred Christian |
| Month |