我正在嘗試使用XPath生成包含分頁的表格。從基於位置的列表返回頂級元素
這裏的兩個項目爲例:
<?xml version="1.0" encoding="utf-8"?>
<d:data xmlns:d="defiant-namespace" d:constr="Array" d:mi="114">
<d:item d:mi="24">
<name d:constr="String" d:mi="13">/Partition/MYLB1</name>
<ip d:constr="String" d:mi="14">1.1.1.1</ip>
<port d:constr="String" d:mi="15">80</port>
<pools d:constr="null"/>
<loadbalancer d:constr="String" d:mi="23">LB1</loadbalancer>
</d:item>
<d:item d:mi="51">
<name d:constr="String" d:mi="25">/Partition/MYLB2</name>
<ip d:constr="String" d:mi="26">2.2.2.2</ip>
<port d:constr="String" d:mi="27">443</port>
<pools d:mi="47" d:type="ArrayItem">
<name d:constr="String" d:mi="46">myPool</name>
</pools>
<loadbalancer d:constr="String" d:mi="50">LB2</loadbalancer>
</d:item>
<d:item d:mi="24">
<name d:constr="String" d:mi="13">/Partition/MYLB1</name>
<ip d:constr="String" d:mi="14">1.1.1.1</ip>
<port d:constr="String" d:mi="15">80</port>
<pools d:constr="null"/>
<loadbalancer d:constr="String" d:mi="23">LB1</loadbalancer>
</d:item>
</d:data>
比方說,我只是想在這個列表中的前兩個項目,我該如何實現這一目標?
託管與此查詢做到這一點:
//*[name][position() <= 1]
不過,我懷疑,如果我以後再添加更多的孩子和他們中的一個具有屬性「名」,它也會受到影響。
這是我想通會的工作,但它返回一個項目很多,我只想到一個:我搜索了
//*[position() <= 1]
如何搭配獨生子女的第一級,如何獲取數組的位置。但是,在每個出現的線程中,他們知道他們搜索的是哪個值,而我只是想返回與它們的內容或祖先數量無關的元素。
對我如何思考錯誤以及如何正確對待的解釋將非常感謝!
2016年1月5日 - 編輯:修訂在它具有「名稱」較低級的例子。
還增加了一個例子:
我需要的XPath來只返回頂層項目:
即:
<d:item d:mi="24">
<name d:constr="String" d:mi="13">/Partition/MYLB1</name>
<ip d:constr="String" d:mi="14">1.1.1.1</ip>
<port d:constr="String" d:mi="15">80</port>
<pools d:constr="null"/>
<loadbalancer d:constr="String" d:mi="23">LB1</loadbalancer>
</d:item>
但不是:
<name d:constr="String" d:mi="46">myPool</name>
/帕特里克
你能請顯示想要的結果? –
已添加示例。 – PatrikJ