Subject: Re: XPath problem
From: "Jay Bryant" <jay@xxxxxxxxxxxx>
Date: Mon, 30 Jan 2006 12:00:12 -0600
|
One XSLT 2.0 way:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<out>
<xsl:for-each select="root/test/para except root/test[2]/para[2]">
<xsl:copy-of select="."/>
</xsl:for-each>
</out>
</xsl:template>
</xsl:stylesheet>
One XSLT 1.0 way:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<out>
<xsl:for-each
select="root/test/para[not(count(../preceding-sibling::test) = 1 and
count(preceding-sibling::para) = 1)]">
<xsl:copy-of select="."/>
</xsl:for-each>
</out>
</xsl:template>
</xsl:stylesheet>
HTH
Jay Bryant
Bryant Communication Services
----- Original Message -----
From: "Liron" <magilam@xxxxxxxxxxxxxxxx>
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Monday, January 30, 2006 10:24 AM
Subject: XPath problem
> Hello all,
>
> Assuming I have a document like this:
>
> <root>
> <test>
> <para>Text1</para>
> <para>Text2</para>
> <para>Text3</para>
> </test>
> <test>
> <para>Text1</para>
> <para>Text2</para>
> <para>Text3</para>
> </test>
> <test>
> <para>Text1</para>
> <para>Text2</para>
> <para>Text3</para>
> </test>
> </root>
>
> I'm trying to figure out how to build a xpath statement to get all the
text
> nodes besides from the 2nd <para> element of the 2nd <test> element. I was
> trying to write something like /root/test/para[position()!=2 and
> ancestor::*[1][position()!=2]]/text() but it didn't work (I guess that
> you're not surprised by that result...)
> Is such a statement even possible in xpath? Also, how would I implement
such
> a query on xslt?
>
> (In my real document there could be more levels to avoid)
>
> Thank you very much for your patience and help
> Liron
| Current Thread |
- XPath problem
- Liron - 30 Jan 2006 16:25:04 -0000
- Jay Bryant - 30 Jan 2006 18:01:00 -0000 <=
- Liron - 30 Jan 2006 19:47:15 -0000
- <Possible follow-ups>
- cknell - 30 Jan 2006 16:59:26 -0000
|
|