使用XPath
或XSLT 1.0,我需要找到處理指令<?start?>
和<?end?>
之間的每個節點。下面的代碼:查找每個處理指令之間的所有XML節點
//node()[preceding-sibling::processing-instruction()[self::processing-instruction('start')]
following-sibling::processing-instruction()[ self::processing-instruction('end')]]`,
的作品,但自然,它只能選擇第一個PI和最後一個PI之間的節點。有沒有辦法只選擇每個開始 - 結束對之間的節點?
<root>
abc
<?start?>def<Highlighted
bold="yes"><Highlighted italic="yes">ghi</Highlighted></Highlighted>jkl
<?pi?>
<table>
<Caption>stu</Caption>
</table>vw
<?end?>
xy<?start?>
abc <Caption>def</Caption> ghi<?end?> jkl
</root>
該問題被標記爲XSLT和XPath。你需要一個純粹的XPath解決方案還是你想用XSLT來解決這個問題?此外,你可以使用XSLT/XPath 2.0(比如' ...''? –
如果不可能使用純XPath解決方案,那麼可以使用XSLT 1.0,但不能使用XSLT 2.0,忘記提及它吧。 –
我編輯了我的答案並添加了一個XSLT 1.0的方法 –