Re: [xsl] XPath problem

Subject: Re: [xsl] 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: [xsl] 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
  • [xsl] XPath problem
    • Liron - Mon, 30 Jan 2006 17:24:33 +0100
      • Jay Bryant - Mon, 30 Jan 2006 12:00:12 -0600 <=
        • Liron - Mon, 30 Jan 2006 20:42:44 +0100
      • <Possible follow-ups>
      • cknell - Mon, 30 Jan 2006 11:58:59 -0500