Not able to find find xpath



我无法从下面的xml中找到文本的xpath。我需要获取analysisId的文本"ABCD"。

<ns1:Results>
<ns1:Type>string</ns1:Type>
<ns1:Key>resolution</ns1:Key>
<ns1:SimpleValue><![CDATA[<ResultAnalysisList priority="0000" analysisId="ABCD" displayName=" ">
<Group id=""
|
|
</ns1:Results>

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

这不能使用纯XPath v1.0(如果我没记错的话,selenium支持的版本)来完成。

CDATA中的文本未解析。它被视为纯文本。因此,从XPath处理器的角度来看,在CDATA中没有可以使用XPath访问的元素或属性。

相关:CDATA 内标签的X路径


如果CDATA部分包含格式良好的XML,您可以尝试首先使用XPath获取整个CDATA内容,然后将其作为单独的XML传递给XPath处理器(两步解析)。

仅供参考,XPath 3.0有parse-xml()函数,可以用于此目的,大致如下:

//ns1:SimpleValue/parse-xml(.)/ResultAnalysisList/@analysisId

xpath 3.0演示:http://xpatheval.apphb.com/y6Ln4drA4

肮脏的黑客:

substring-before(substring-after(//ns1:SimpleValue,'analysisId="'),'"')

最新更新