我試圖找出一個XPath查詢字符串來執行以下操作。相對XPath查詢迭代'級'
由於XML文檔是這樣的:
<root>
<data>foo1</data>
<irrelevant-node>
<data>foo1</data>
</irrelevant-node>
<irrelevant-node />
<data>foo2</data>
<irrelevant-node />
<region>
<data>bar1</data>
<data>bar2</data>
<irrelevant-node />
<region>
<data>hello1</data>
<irrelevant-node />
<data>hello2</data>
<region>
<irrelevant-node />
<data>world1</data>
</region>
</region>
<irrelevant-node />
<data>bar3</data>
<irrelevant-node>
<data>foo1</data>
</irrelevant-node>
<irrelevant-node />
</region>
<irrelevant-node />
</root>
我想抓住所有未包含在<region>
內<data>
節點。
然後,我想抓住所有最上面的<region>
節點並重覆上面的過程,相對地工作。
本質上,我將根據其內容在<data>
節點上執行多個進程(PHP),然後替換它們。但是,<region>
節點充當範圍分隔符,並且一旦完成處理給定範圍內的所有<data>
節點,我將向下移動一個區域級別。 <data>
節點可以嵌套在其他不相關節點中。
不確定XPath是否是最好的工具,而且在解決這個問題時遇到了很多麻煩。如前所述,我正在使用DOM類的PHP實現。
在第二次迭代中還應該使用「bar ...」data來選擇/ root/region /無關節點/數據? – 2011-01-07 20:13:39
** @亞歷杭德羅**:這是正確的。第一次迭代應該捕獲所有'foo`數據。第二個,「酒吧」。第三個`hello`,等等。 – Dan 2011-01-07 20:31:53