工作日的 XPath

XPath for Workday

我是 XPath 的新手,非常感谢您的专家建议!

<wd:Get_Workers_Response xmlns:wd="urn:com.workday/bsvc" wd:version="v24.1">
    <wd:Response_Data>
      <wd:Worker>
        <wd:Worker_Data>
          <wd:Employment_Data>                                                  
           <wd:Position_Data wd:Effective_Date="2022-04-17-07:00">
            <wd:Job_Classification_Summary_Data>
             <wd:Job_Classification_Reference wd:Descriptor="Some Value">
             <wd:ID wd:type="WID">6abcdefghijklmnopqrstuvwxyzabcd2</wd:ID>                                                                                                        
             <wd:ID wd:type="Job_Classification_Reference_ID">Some_Value</wd:ID>                                                                                     
            </wd:Job_Classification_Reference>
            <wd:Job_Group_Reference wd:Descriptor="MIP">
            <wd:ID wd:type="WID">XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</wd:ID>
            <wd:ID wd:type="Job_Classification_Group_ID">JOB_CLASSIFICATION_GROUP_MIP</wd:ID>
           </wd:Job_Group_Reference>
          </wd:Job_Classification_Summary_Data>
         </wd:Position_Data>
        </wd:Employment_Data>
      </wd:Worker_Data>
     </wd:Worker>
    </wd:Response_Data>
</wd:Get_Workers_Response>

我想获取值“Some_value” Some_Value 其中 WID=6abcdefghijklmnopqrstuvwxyzabcd2

你能告诉我它的 xpath 吗?

这个 XPath 表达式:

string(//wd:ID[@wd:type = 'Job_Classification_Reference_ID']/text())

根据提供的 XML 文档进行评估(为前缀 'wd:' 添加任意 namespace-uri 以使其格式正确):

<wd:Response_Data xmlns:wd="urn:com.workday/xxx">
  <wd:Worker>
    <wd:Worker_Data>
      <wd:Employment_Data>
       <wd:Position_Data wd:Effective_Date="2022-04-17-07:00">
        <wd:Job_Classification_Summary_Data>
         <wd:Job_Classification_Reference wd:Descriptor="Some Value">
         <wd:ID wd:type="WID">6abcdefghijklmnopqrstuvwxyzabcd2</wd:ID>
         <wd:ID wd:type="Job_Classification_Reference_ID">Some_Value</wd:ID>
        </wd:Job_Classification_Reference>
        <wd:Job_Group_Reference wd:Descriptor="MIP">
        <wd:ID wd:type="WID">XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</wd:ID>
        <wd:ID wd:type="Job_Classification_Group_ID">JOB_CLASSIFICATION_GROUP_MIP</wd:ID>
       </wd:Job_Group_Reference>
      </wd:Job_Classification_Summary_Data>
     </wd:Position_Data>
    </wd:Employment_Data>
  </wd:Worker_Data>
 </wd:Worker>
</wd:Response_Data>

选择所需文本节点的字符串值:

Some_Value

注意: 在您的 XPath 引擎中,您需要注册一个 'wd:' 前缀并将其与 "urn:com.workday/xxx" 命名空间相关联。

当您可以为使用的命名空间声明前缀时使用此 XPath:

//wd:ID[@wd:type='WID' and text()='6abcdefghijklmnopqrstuvwxyzabcd2']/following-sibling::wd:ID[1]/text()

或者在 XPath 更明确的情况下作为更快的替代方法,使用此 XPath:

//wd:Job_Classification_Summary_Data/wd:Job_Classification_Reference[wd:ID[@type='WID']/text() = '6abcdefghijklmnopqrstuvwxyzabcd2']]/wd:ID[@type='Job_Classification_Reference_ID']/text()

如果您不能使用前缀,请使用此 XPath:

//*[local-name()='ID'][@*[local-name()='type' and .='WID'] and text()='6abcdefghijklmnopqrstuvwxyzabcd2']/following-sibling::*[local-name()='ID'][1]/text()