in reply to Re: Having trouble with siblings
in thread Having trouble with siblings
Aha, the node test node() will select all types of nodes, even text() nodes
- so find a <header> which contains 'rationale'
- and select every child node of that header
- and filter this nodeset for nodes which have following-sibling with tagname <l> or which have tagname <l>
xmllint.exe --xpath " //header[ contains(.,'rationale') ]/node()[ fol +lowing-sibling::l or self::l] " fudge 1. Purpose and rationale <p>purpose 1</p> <p>Purpose 2</p> <p>purpose 3</p> <l> <li>purpose list 1</li> <li>list2</li> </l> 2. Purpose and rationale <p>2 purpose 1</p> <p>2 Purpose 2</p> <p>2 purpose 3</p> <l> <li>2 purpose list 1</li> <li>2 list2</li> </l>
Naturally if there are more than one <l> you can limit to first <l> with position() xmllint.exe --xpath " //header[ contains(.,'rationale') ]/node()[ following-sibling::l[ position()=1 ] or self::l[ position()=1 ] ] " fudge
|
---|
In Section
Seekers of Perl Wisdom