我无法从下面的xml中找到文本的xpath。我需要为analyzeId获取文本“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>
任何帮助都将不胜感激。
答案 0 :(得分:0)
这不能使用纯XPath v1.0(硒支持的版本,如果我没记错的话)完成。
未解析CDATA内的文本。它被视为纯文本。因此,在XPath处理器的观点中,没有可以使用CDATA中的XPath访问的元素或属性。
相关:Xpath to the tag inside CDATA
如果CDATA部分包含格式良好的XML,您可以先尝试使用XPath获取整个CDATA内容,然后将其作为单独的XML传递给XPath处理器(2步解析)。
仅供参考,XPath 3.0具有parse-xml()
功能,可以用于此目的,就像这一行:
//ns1:SimpleValue/parse-xml(.)/ResultAnalysisList/@analysisId
xpath 3.0 demo:http://xpatheval.apphb.com/y6Ln4drA4
答案 1 :(得分:0)
肮脏的黑客:
substring-before(substring-after(//ns1:SimpleValue,'analysisId="'),'"')