2016-04-20 6 views
-2

Я не могу найти xpath для текста из приведенного ниже xml. Мне нужно получить текст «ABCD» для анализа.Не удалось найти xpath

<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

http://stackoverflow.com/questions/4531995/getting-attribute-using-xpath –

+0

Ваша XML-треска e является неполным, пожалуйста, исправьте его. Вы пытаетесь получить данные на узле CDATA? – Buaban

ответ

0

Этого не может быть сделано с использованием чистого XPath v1.0 (версия, которая поддерживает селен, если я правильно помню).

Текст внутри CDATA не разобран. Он рассматривается как простой текст. Таким образом, в точке зрения процессора XPath нет элементов или атрибутов, к которым вы можете получить доступ, используя XPath в CDATA.

Похожие: Xpath to the tag inside CDATA


Если CDATA раздел содержит хорошо сформированный XML, вы могли бы попытаться получить все содержимое CDATA с помощью XPath, а затем передать его в качестве отдельного XML к процессору XPath (2 парсинг шагов).

Просто FYI, XPath 3.0 имеет parse-xml() функцию, которая может быть использована для этой цели, то вдоль этой линии:

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

XPATH 3,0 демо: http://xpatheval.apphb.com/y6Ln4drA4

0

Грязный хак:

substring-before(substring-after(//ns1:SimpleValue,'analysisId="'),'"') 
Смежные вопросы