你能告訴我如何檢查我的 xml 是否包含具有精確值的陣列中的嵌套元素嗎?這是我的示例 XML:
<?xml version="1.0" encoding="UTF-8"?>
<items>
<item>
<identifier>100</identifier>
<value>ABC</value>
</item>
<item>
<identifier>200</identifier>
<value>XYZ</value>
</item>
<item>
<identifier>100</identifier>
<value>DEF</value>
</item>
<item>
<identifier>300</identifier>
<value>GFH</value>
</item>
</items>
例如,我需要檢查上面的 xml 是否包含帶有此識別符號的元素,identifier = 100并且帶有此識別符號的元素必須具有value = DEF。它可以在陣列項中的任何索引上。
uj5u.com熱心網友回復:
您可以使用這個 XPath 運算式
"//items[.//identifier='100'][.//value='DEF']"
或這個
"//items[.//identifier='100' and .//value='DEF']"
uj5u.com熱心網友回復:
使用 XPath 進行測驗可以這樣撰寫:
boolean(/items/item[./identifier='100' and ./value='DEF'])
uj5u.com熱心網友回復:
您的問題可能有點不清楚(其他答案的解釋不同),但我認為它的意思是您想要一個 XPath 運算式,如果 XML包含true至少一個item元素,該元素的值是和也是值為 的子元素。identifier100valueDEF
這是一個簡短的 XPath 運算式,它可以做到這一點:
boolean(//item[identifier='100'][value='DEF'])
解釋:
- 該
//item運算式是 的縮寫/descendant-or-self::node()/child::item,其結果是item檔案中所有元素的集合。 - 謂詞是一個過濾器,
[identifier='100']它將那組item元素減少到只有那些運算式identifier='100'為真的元素;即只有那些item具有identifier字串值為的子元素的元素"100"。 - 謂詞是一個過濾器,它進一步將該
[value='DEF']組item元素簡化為僅那些運算式value='DEF'為真的元素;即只有那些item具有value字串值為的子元素的元素"DEF"。
最后,這組item元素被boolean()函式轉換為布林值;如果集合為空,則函式回傳false;如果它包含一項或多項,則值為true
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/521250.html
標籤:xml路径
上一篇:community.general.xml:我不知道我需要的xpath
下一篇:在片段中創建按鈕
