我有一個 xml 檔案,我需要檢索節點“DocIDAu??toNumerator”的值,但我只需要在提交的“ActivityTime”包含今天(2021-08-11)的日期時使用它,如果節點“DocumentTypeValue”等于 1319。我嘗試了幾個小時,但可以通過我所做的來檢索它。這就是我所做的-
路徑
//Document[.//Field[Code[text()='DocumentTypeValue'] and Value[text()='1319']] and //ActivityTime[contains(text(),'2021-08-11')] ]//Fields[Field[Code="DocumentTypeValue"]] /Field[Code="DocIDAutoNumerator"]/Value
XML
<root>
<Document>
<Labels>
<Label>
<Fields>
<Field>
<Code>DocumentTypeValue</Code>
<Value>4008</Value>
</Field>
<Field>
<Code>DocIDAutoNumerator</Code>
<Value>123121</Value>
</Field>
</Fields>
</Label>
</Labels>
<ActivityTime>2021-08-11 </ActivityTime>
</Document>
<Document>
<Labels>
<Label>
<Fields>
<Field>
<Code>DocumentTypeValue</Code>
<Value>1319</Value>
</Field>
<Field>
<Code>DocIDAutoNumerator</Code>
<Value>21321</Value>
</Field>
</Fields>
</Label>
</Labels>
<ActivityTime>1993-08-11 </ActivityTime>
</Document>
</root>
uj5u.com熱心網友回復:
這個 XPath,
/root/Document[normalize-space(ActivityTime)='2021-08-11']
//Fields[Field/Code='DocumentTypeValue']
/Field[Code='DocIDAutoNumerator']/Value/text()
選擇目標文本Value,
123121
按照要求。
解釋
Document根據給定的ActivityTime值進行選擇。- 使用
normalize-space()消除方差做,在這種情況下,尾隨空白。
- 使用
從那里,
Fields根據給定的Field/Code值進行選擇。從那里,選擇
Field based on the givenCode` 值。選擇該
Field元素的Value子文本。
有關的
- 使用 XPATH 獲取節點位置以從同一棵樹中檢索另一個值
更新:
還要補充一點,Fieldwith aDocumentTypeValue Code必須有一個4008 Value:
/root/Document[normalize-space(ActivityTime)='2021-08-11']
//Fields[Field[Code='DocumentTypeValue'][Value='4008']]
/Field[Code='DocIDAutoNumerator']/Value/text()
uj5u.com熱心網友回復:
這個(無可否認的令人費解的)xpath 運算式
//Document[contains(.//ActivityTime,"2021-08-11")] \
[.//Field[.//Code[.="DocumentTypeValue"]][.//Value[.="4008"]]] \
//Field[./Code[.="DocIDAutoNumerator"]]/Value
應該輸出,給定您的示例 xml
123121
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/365383.html
上一篇:從sql資料庫中的xml列回傳所有非標準節點(重復)的串列
下一篇:分組元素無法正常作業
