Предположим, у нас есть этот XML:
<root>
<span id="1 nothread">some code here</span>
<blockquote>text1</blockquote>
more code in here
<span id="2 nothread">some code here</span>
<blockquote>text</blockquote>
<span id="3">some code here</span>
<blockquote>text</blockquote>
<blockquote>not selected text</blockquote>
</root>
Итак, этот XPath: //blockquote[local-name(preceding::*[1]) = 'span' and contains(preceding::*[1]/@id, 'nothread')]/node()
выбирает все blockquote
, если он идет сразу после span, а span / @ id содержит nothread
.Результат:
- text1
- text
Итак, видите, not selected text
не был выбран