Subject: Re: [xsl] Select everything up to and including the first <section> From: "Dimitre Novatchev dnovatchev@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Wed, 19 Apr 2017 21:47:02 -0000 |
> My context node is the <chapter> element. I want to select everything up to > and including the first <section>. In case this will be needed more than once, then using XSLT 1.0 one can do this: key('kPreceding', generate-id(/*/section[1])) | /*/section[1] where the key is defined like this: <xsl:key name="kPreceding" match="node()" use="generate-id(following-sibling::section[1])"/> Note, that a variation of this may be useful in selecting all nodes that are between any two consecutive <section/> siblings: <xsl:key name="kBetween" match="node()" use="concat(generate-id(preceding-sibling::section[1]), generate-id(following-sibling::section[1]))"/> and select the nodes with something like this: key('kBetween', concat(generate-id(/*/section[1]), generate-id(/*/section[2]))) Cheers, Dimitre On Wed, Apr 12, 2017 at 2:06 PM, Rick Quatro rick@xxxxxxxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > Hi All, > > Here is my xml: > > <?xml version="1.0" encoding="UTF-8"?> > <chapter> > <title>Title</title> > <intro> > <p>Intro</p> > </intro> > <section></section> > <section></section> > <section></section> > </chapter> > > My context node is the <chapter> element. I want to select everything up to > and including the first <section>. I am trying this > > > //chapter/*[not(self::section[position()>1])] > > but it selects all of the children of chapter. In the above example, I am > trying to select all of the children except the last two sections. Thank you > in advance. > > Rick > > Rick Quatro > Carmen Publishing Inc. > rick@xxxxxxxxxxxxxxx > 585-366-4017 > > > > -- Cheers, Dimitre Novatchev --------------------------------------- Truly great madness cannot be achieved without significant intelligence. --------------------------------------- To invent, you need a good imagination and a pile of junk ------------------------------------- Never fight an inanimate object ------------------------------------- To avoid situations in which you might make mistakes may be the biggest mistake of all ------------------------------------ Quality means doing it right when no one is looking. ------------------------------------- You've achieved success in your field when you don't know whether what you're doing is work or play ------------------------------------- To achieve the impossible dream, try going to sleep. ------------------------------------- Facts do not cease to exist because they are ignored. ------------------------------------- Typing monkeys will write all Shakespeare's works in 200yrs.Will they write all patents, too? :) ------------------------------------- Sanity is madness put to good use. ------------------------------------- I finally figured out the only reason to be alive is to enjoy it.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Select everything up to a, Wendell Piez wapiez@ | Thread | |
Re: [xsl] Select everything up to a, Wendell Piez wapiez@ | Date | |
Month |