|
Subject: Re: [xsl] XML/XSLT Problem From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx> Date: Mon, 29 Jul 2002 16:24:57 -0400 |
I have input XML Document like this:
...
I need to create XSLT Stylesheet which retrieves from this XML only those
elements "PP", "IP" and "PR" where:
(PP/IPI/@id = IP/@id) and (IP/@id-1 = PR/@id).
...
If beeing already within <xsl:template match="abc">
I use <xsl:apply-templates select="PP|IP|PR"> - I can not refer to the
attributes of this elements ("id" and "id-1") because this attribute names
are not unique.
Can somebody give me a hint how can I solve this problem?
T:\ftemp>type alex.xml <ABC> <efg>fgh</efg> <hij>sdf</hij> <abc> <PP id="111" id-1="222" > <IPI id="333" id-2="444" > <p1>p1p1p1</p1> </IPI> <IPI id="sss" id-2="666" > <p1>p2p2p2</p1> </IPI> </PP> <PP id="777" id-1="888" > <IPI id="123" id-2="234" > <p1>p3p3p3</p1> </IPI> <IPI id="456" id-2="567" > <p1>p4p4p4</p1> </IPI> </PP> <IP id="rrr" id-1="aaa"> <i1>i1i1i1</i1> </IP> <IP id="sss" id-1="bbb"> <i1>i2i2i2</i1> </IP> <IP id="ttt" id-1="ccc"> <i1>i3i3i3</i1> </IP> <IP id="uuu" id-1="ddd"> <i1>i4i4i4</i1> </IP> <PR id="xxx"> <r1>r1r1r1</r1> </PR> <PR id="bbb"> <r1>r2r2r2</r1> </PR> <PR id="zzz"> <r1>r3r3r3</r1> </PR> </abc> </ABC>
T:\ftemp>type alex.xsl <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/ABC"> <xsl:apply-templates select="abc"/> </xsl:template>
<xsl:template match="abc">
<abc>
<xsl:variable name="IPI-ids" select="PP/IPI/@id"/>
<xsl:variable name="PR-ids" select="PR/@id"/>
<xsl:variable name="common-IPs" select="IP[@id=$IPI-ids and
@id-1=$PR-ids]"/> <xsl:copy-of select="PP[IPI/@id=$common-IPs/@id]"/>
<xsl:copy-of select="$common-IPs"/>
<xsl:copy-of select="PR[@id=$common-IPs/@id-1]"/></abc> </xsl:template>
T:\ftemp>type alex.out
<?xml version="1.0" encoding="utf-8"?>
<abc>
<PP id="111" id-1="222">
<IPI id="333" id-2="444">
<p1>p1p1p1</p1>
</IPI>
<IPI id="sss" id-2="666">
<p1>p2p2p2</p1>
</IPI>
</PP>
<IP id="sss" id-1="bbb">
<i1>i2i2i2</i1>
</IP>
<PR id="bbb">
<r1>r2r2r2</r1>
</PR>
</abc>
-- Upcoming hands-on in-depth 3-days XSLT/XPath and/or 2-days XSL-FO: - North America: Sep 30-Oct 4,2002 - Japan: Oct 7-Oct 11,2002
G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (Fax:-0995) ISBN 0-13-065196-6 Definitive XSLT and XPath ISBN 1-894049-08-X Practical Transformation Using XSLT and XPath ISBN 1-894049-07-1 Practical Formatting Using XSLFO XSL/XML/DSSSL/SGML/OmniMark services, books (electronic, printed), articles, training (instructor-live,Internet-live,web/CD,licensed) Next public training: 2002-08-05,26,27,09-30,10-03,07,10
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] XML/XSLT Problem, Alex Genis | Thread | Re: [xsl] XML/XSLT Problem, Alex Genis |
| Re: [xsl] Sorry No Text : Grouping , G. Ken Holman | Date | Re: [xsl] Parameter evaluation afte, Yves Forkl |
| Month |