[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: XPath problem

Subject: Re: XPath problem
From: "Liron" <magilam@xxxxxxxxxxxxxxxx>
Date: Mon, 30 Jan 2006 20:42:44 +0100
xpath select root
Hello,

Thank you very much for your replies. You helped a lot

Liron

----- Original Message ----- From: "Jay Bryant" <jay@xxxxxxxxxxxx>
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Monday, January 30, 2006 7:00 PM
Subject: Re: XPath problem



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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.