我的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是否需要稍微调整一下?
由于
答案 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")]