Subject: Re: [xsl] How to select an attribute on the current node or its anchestor From: Brandon Ibach <brandon.ibach@xxxxxxxxxxxxxxxxxxx> Date: Fri, 15 Apr 2011 14:47:14 -0400 |
You need to be careful not to get tripped up by the text nodes in your document that consist of nothing but whitespace. Try: ancestor-or-self::*/text()[normalize-space(.) != ''][last()] -Brandon :) On Fri, Apr 15, 2011 at 12:29 PM, Philipp Kursawe <phil.kursawe@xxxxxxxxx> wrote: > and I guess to fetch the text() of the current node or its ancestor I > would have to use: > ancestor-or-self::*[text/text()][1]/text() > > This however does return an empty node for this xml: > <phrase id="goodbye"> > <text xml:lang="en">See you tomorrow!</text> > > <text weight="dayOfWeek" > days="fri"> > <text xml:lang="en">Have a nice weekend!</text> > <text id="weekend_summer" > weight="month" > months="4,5,6,7,8,9,10"> > <text alt="garden" icon="data:binary;..."/> > <text alt="boat" icon="data:binary;..."/> > </text> > </text> > </phrase> > > and > > ancestor-or-self::*[text/text()][1]/text does return the text node. > But I would like to select the text() in one select. > > I tried > //*[@id='weekend_summer']/ancestor-or-self::*[text/text()][1]/text > which returns > <text xml:lang="en">Have a nice weekend!</text> > > But i would like to fetch the text() node directly. > > Thanks all for your help! > Phil > On Fri, Apr 15, 2011 at 8:33 AM, Brandon Ibach > <brandon.ibach@xxxxxxxxxxxxxxxxxxx> wrote: >> ancestor-or-self::*[@data][1]/@data >> >> -Brandon :) >> >> >> On Fri, Apr 15, 2011 at 2:06 AM, Philipp Kursawe <phil.kursawe@xxxxxxxxx> wrote: >>> Hello, >>> >>> given the following xml: >>> >>> <node data="foo"> >>> <text id="1" data="bar"/> >>> <text id="2"/> >>> </node> >>> >>> I would like to know the XPath expression to select @data which >>> results in "bar" for @id=1 and "foo" for @id=2. >>> >>> The general idea is to search for the attribute in the anchestor if >>> the current node does not contain the attribute all the way up to the >>> root node. >>> >>> Thanks for your help! >>> >>> Phil
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] How to select an attribut, Philipp Kursawe | Thread | RE: [xsl] How to select an attribut, Trevor Nicholls |
Re: [xsl] Select a node only if its, Brandon Ibach | Date | RE: [xsl] Traverse sub tree startin, Graeme Kidd |
Month |