XPath - 获取具有特定值的属性

时间:2016-10-07 11:49:59

标签: xpath

我的XPath表达式似乎有些错误。这是我的XML片段。

<wd:Repository_Document_Reference wd:Descriptor="EIB_Input.zip">
                 <wd:ID wd:type="WID">VALUE 1</wd:ID>
                 <wd:ID wd:type="Document_ID">VALUE 2</wd:ID>
</wd:Repository_Document_Reference>

我希望将'VALUE 2'提取为单个输出。

我当前的XPath无效:

/wd:Repository_Document_Reference/wd:ID[@wd:type='Document_ID']

我的XPath是否需要稍微调整一下?

由于

2 个答案:

答案 0 :(得分:0)

您的XPath选择

<wd:ID wd:type="Document_ID">VALUE 2</wd:ID>

来自您已展示的XML。在将其评估为字符串的上下文中,它确实是

VALUE 2

如果您希望强制将其评估为字符串,则可以显式获取XPath的字符串值:

string(/wd:Repository_Document_Reference/wd:ID[@wd:type='Document_ID'])

但是,您的文档的其他部分(您尚未显示)可能会导致其他并发症。您的XPath可能正在选择多个元素或没有元素。您必须确保您的XPath足够具体,只能选择您想要的元素。您还必须确保已正确定义名称空间前缀wd。如果不了解您的实际示例,我们无法说出来。

答案 1 :(得分:-1)

尝试; /wd:Repository_Document_Reference/wd:ID[contains(@wd:type,"Document_ID")]