XPath - select value



祝你好运我想获得national_id的值。我很挣扎,因为值在一个单独的元素中,不知道如何只选择它。

我希望返回"1234567891011(ZAF-ID("。

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Body>
<wd:Get_Workers_Response wd:version="v32.2" xmlns:wd="urn:com.workday/bsvc">
<wd:Response_Data>
<wd:Worker>
<wd:Worker_Data>
<wd:Integration_Field_Override_Data>
<wd:Field_Reference>
<wd:ID wd:type="WID">12345</wd:ID>
<wd:ID wd:type="Integration_Document_Field_Name" wd:parent_type="Integration_Document_Name" wd:parent_id="INT017 Field Override for Worker">passport_number</wd:ID>
</wd:Field_Reference>
</wd:Integration_Field_Override_Data>
<wd:Integration_Field_Override_Data>
<wd:Field_Reference>
<wd:ID wd:type="WID">67891</wd:ID>                      
<wd:ID wd:type="Integration_Document_Field_Name" wd:parent_type="Integration_Document_Name" wd:parent_id="INT017 Field Override for Worker">national_id</wd:ID>
</wd:Field_Reference>
<wd:Value>1234567891011 (ZAF-ID)</wd:Value>
</wd:Integration_Field_Override_Data>
<wd:Integration_Field_Override_Data>
<wd:Field_Reference>
<wd:ID wd:type="WID">111213</wd:ID>
<wd:ID wd:type="Integration_Document_Field_Name" wd:parent_type="Integration_Document_Name" wd:parent_id="INT017 Field Override for Worker">network_logon</wd:ID>
</wd:Field_Reference>
</wd:Integration_Field_Override_Data>
<wd:Integration_Field_Override_Data>
<wd:Field_Reference>
<wd:ID wd:type="WID">141516</wd:ID>
<wd:ID wd:type="Integration_Document_Field_Name" wd:parent_type="Integration_Document_Name" wd:parent_id="INT017 Field Override for Worker">role_size</wd:ID>
</wd:Field_Reference>
<wd:Value>M</wd:Value>
</wd:Integration_Field_Override_Data>
<wd:Integration_Field_Override_Data>
<wd:Field_Reference>
<wd:ID wd:type="WID">171819</wd:ID>
<wd:ID wd:type="Integration_Document_Field_Name" wd:parent_type="Integration_Document_Name" wd:parent_id="INT017 Field Override for Worker">ts_organization</wd:ID>
</wd:Field_Reference>
<wd:Value>Information Technology</wd:Value>
</wd:Integration_Field_Override_Data>
<wd:Integration_Field_Override_Data>
<wd:Field_Reference>
<wd:ID wd:type="WID">202122</wd:ID>
<wd:ID wd:type="Integration_Document_Field_Name" wd:parent_type="Integration_Document_Name" wd:parent_id="INT017 Field Override for Worker">mutual_branch_user</wd:ID>
</wd:Field_Reference>
<wd:Value>N</wd:Value>
</wd:Integration_Field_Override_Data>
</wd:Worker_Data>
</wd:Worker>
</wd:Response_Data>
</wd:Get_Workers_Response>
</env:Body>
</env:Envelope>

如有任何协助,我们将不胜感激。

这是工作

//wd:ID[text()="national_id"]/ancestor::*/wd:Value/text()

要完成@Alexander Riedel的回答,还有两个选项:

//wd:Value[preceding::wd:ID[1][.="national_id"]]/text()
//wd:ID[.="national_id"]/../following-sibling::wd:Value/text()

最新更新