|
Subject: [xsl] passing filtered tree to template From: Stefan Hunziker <stefan@xxxxxxxxxxxxx> Date: Mon, 6 Jun 2011 17:56:45 +0200 |
Hi
I have the following problem: Given an xml like the following:
<test>
<items>
<item>
<index>1</index>
<property>x</property>
</item>
<item>
<index>2</index>
<property>y</property>
</item>
<item>
<index>3</index>
<property>x</property>
</item>
</items>
</test>
and a stylesheet like:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="test">
<myTest>
<xsl:variable name="xItems">
<xsl:copy-of select="items"/>
</xsl:variable>
<xsl:apply-templates
select="items[item/property='y']"/><!-- wrong try! -->
</myTest>
</xsl:template>
<xsl:template match="items">
<xsl:for-each select="item">
<myItem>
<xsl:value-of select="index"/>
</myItem>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
I would like to pass only the items with property='x' to the items
matching template. The first try as written above of course doesn't
work, if there is an x item then the whole tree is passed, if there is
none, nothing is passed. I do further processing in the items
template, so I don't want to change it to match="item" or to apply the
filter in the items template.
Any help is much appreciated!
thanks, kind regards
Stefan
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Re: replace() and transla, Michael Kay | Thread | Re: [xsl] passing filtered tree to , Abel Braaksma |
| Re: [xsl] Hexadecimal character ref, Michael Kay | Date | Re: [xsl] passing filtered tree to , Abel Braaksma |
| Month |