[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: 1st previous node()
On 2011-02-08 07:16, Karl Stubsjoen wrote:
XSL1.0 I need help finding the first previous node, skipping white space, comments, etc.. I thought this might work, but I can't get it or similar tries to work. This can be written as <xsl:variable name="previous" select="preceding::node() [not(child::comment())] [not(child::text())] [not(child::processing-instruction())] [1]"/> which will select the text node immediately preceding X. So you could write <xsl:variable name="previous" select="preceding::node() [not(self::comment())] [not(self::text())] [not(self::processing-instruction())] [1]"/> which will yield <M> <?skip me?> <!--skip me--> </M> for the first example and nothing in the second (since X doesn't have a preceding element: an element has to be closed before X starts in order to qualify as preceding). But as Patrick points out, this can of course be written as <xsl:variable name="previous" select="preceding::*[1]"/> You can get M in the first case and B in the second by declaring <xsl:variable name="previous" select="(preceding-sibling::*[1], ..)[1]" /> which selects the immediately preceding sibling or, if there is no preceding sibling, the parent element. -Gerrit
Registergericht / Commercial Register: Amtsgericht Leipzig Registernummer / Registration Number: HRB 24930 Geschdftsf|hrer: Gerrit Imsieke, Svea Jelonek, Thomas Schmidt, Dr. Reinhard Vvckler
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|