0
我非常新到XPath和我在用於檢索多個元素用於以下的xmlcreaing xpath表達式爲下面的XML
<ol>
<li>
<a data- key="abc(/parent)" value="superval)">Parent</a>
<ol>
<li>
<a data-key="abc(/parent/1)" data-value="parent-val">Parent/1</a>
<ol>
<li>
<a data-key="abc(/parent/1/1)" data-value="xyz">Parent/1/1</a>
</li>
<li>
<a data-key="abc(/parent/1/2)" data-value="xyz">Parent/1/2</a>
</li>
<li>
<a data-key="abc(/parent/1/3)" data-value="xyz">Parent/1/3</a>
</li>
<li>
<a data-key="abc(/parent/1/4)" data-value="xyz">Parent/1/4</a>
</li>
</ol>
</li>
</ol>
</li>
<li>
<a data-key="bcd/(parent1)" value="superval">Parent1</a>
<ol>
<li>
<a data-key="bcd(/parent1/1)" data-value="parent-val">Parent1/1</a>
<ol>
<li>
<a data-key="bcd(/parent1/1/1)" data-value="xyz">Parent1/1/1</a>
</li>
<li>
<a data-key="bcd(/parent1/1/2)" data-value="xyz">Parent1/1/2</a>
</li>
<li>
<a data-key="bcd(/parent1/1/3)" data-value="xyz">Parent1/1/3</a>
</li>
<li>
<a data-key="bcd(/parent1/1/4)" data-value="xyz">Parent1/1/4</a>
</li>
</ol>
</li>
</ol>
</li>
</ol>
上面的XML創建XPath表達式的過程僅僅是一個例如,每個父代可以包含多個子值。我需要搜索數據鍵值從say(parent/1/1/1
)到(parent/1/1/4
)開始的元素,並且爲這些鍵提取與其關聯的屬性value
的值。數據密鑰值也可跨越不同的父母,如(parent/1/1/1
)至(parent/1/1/2
)。
我需要爲以上兩種情況創建XPath表達式。我已經使用這個XPath表達式
//*[@data-key='abc(/parent/1/1/1)']
嘗試,但它只是給了我一個<a>
元素,在這裏我需要一個元素的範圍。我對XPath完全陌生,所以在這方面的任何幫助都會有用。
非常感謝提前。 Asheesh
您想從哪種編程語言或系統中使用XPath來處理此XML? –
我使用的是C++,我使用libXML庫來解析這個XML。 – ash1977