2017-01-04 1 views
0

У меня есть 2 xpaths as - //xpath1/text() и //xpath2/text() Я хочу создать одно условное выражение xpath, которое проверит, является ли текст одинаковым для обоих.Проверка наличия одного и того же текста в двух разных xpath

Возможно ли это? Я в порядке, чтобы настроить xpaths.

EDIT

.. 
    <test id="1"> 
     <testcase attr1="xyz">Jane</partyId> 
     <testcase attr2="abc">Doe</partyId> 
    </test> 

    <test id="2"> 
     <testcase attr1="xyz">Jane</partyId> 
     <testcase attr2="abc">Does</partyId> 
    </test> 
.. 

Я хочу, чтобы проверить, является ли текст под //test[@id="1"]/testcase[@attr1="xyz"] и //test[@id="2"]/testcase[@attr1="xyz"] такое же.

+0

Вы хотите получить значение bool? –

+0

Не могли бы вы предоставить более явный пример? – Andersson

+0

Я добавил образец сейчас, надеюсь, что очистит запрос – saikosen

ответ

1
<root xmlns:foo="http://www.foo.org/" xmlns:bar="http://www.bar.org"> 
    <actors> 
     <actor id="1">Christian Bale</actor> 
     <actor id="2">Liam Neeson</actor> 
     <actor id="3">Michael Caine</actor> 
    </actors> 
    <foo:singers> 
     <foo:singer id="4">Tom Waits</foo:singer> 
     <foo:singer id="5">B.B. King</foo:singer> 
     <foo:singer id="6">Ray Charles</foo:singer> 
    </foo:singers> 
</root> 

XPATH:

//actors[string(.)=string(//foo:singers)] 

OUT:

NO MATCH! 

ATTATION:

string() функция преобразует набор узлов в строку, возвращая строковое значение первый узел в наборе узлов, который в некотором i Это может привести к неожиданным результатам.

Если вы хотите, чтобы функция string() объединяла весь дочерний текст, вы должны передать один узел вместо набора узлов.

string Function

+0

Это, кажется, работает для меня, спасибо большое! – saikosen

Смежные вопросы