2017-01-04 18 views
0

私は2つのxpathsを-//xpath1/text()//xpath2/text()として作成します。両方のテキストが同じかどうかを確認する単一のxpath条件式を作成します。同じテキストが2つの異なるxpathの下に表示されているかどうかをチェック

これは可能ですか?私はxpathsを調整するのは大丈夫です。私は//test[@id="1"]/testcase[@attr1="xyz"]//test[@id="2"]/testcase[@attr1="xyz"]下のテキストが同じであるかどうかを確認したい

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> 
.. 

+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()関数は変換ノードセットの文字列値を返すことによって、文字列にノード集合内の第1のノードは、予想外の結果が生じる可能性があります。

関数ですべての子テキストを連結する場合は、ノードセットの代わりに単一のノードを渡す必要があります。

string Function

+0

これは私のために働いているようですが、ありがとうございます! – saikosen

関連する問題