2016-10-07 23 views
0

私のXPath式はやや間違っているようです。ここに私のXMLの抜粋は、私は単一の出力として「VALUE 2」を抽出するために探しています。..XPath - 特定の値を持つ属性を取得する

<wd:Repository_Document_Reference wd:Descriptor="EIB_Input.zip"> 
       <wd:ID wd:type="WID">VALUE 1</wd:ID> 
       <wd:ID wd:type="Document_ID">VALUE 2</wd:ID> 
</wd:Repository_Document_Reference> 

です。

私は、現在のXPathが動作していません。

/wd:Repository_Document_Reference/wd:ID[@wd:type='Document_ID'] 

は私のXPathはわずかな微調整を必要としていますか?

ありがとう

答えて

-1

を試してみてください。 /wd:Repository_Document_Reference/wd:ID[contains(@wd:type,"Document_ID")]

0

あなたのXPathは、あなたが示してきたXMLから

<wd:ID wd:type="Document_ID">VALUE 2</wd:ID> 

を選択します。これは文字列として評価されているコンテキストでは、それは確かにあなたが文字列として評価されることを強制したい場合は、明示的にあなたのXPathの文字列値を取ることができ

VALUE 2 

次のようになります。

string(/wd:Repository_Document_Reference/wd:ID[@wd:type='Document_ID']) 

ただし、表示されていない残りの文書が他の問題を引き起こしている可能性があります。 XPathで複数の要素が選択されているか、要素がありません。あなたは、あなたのXPathがあなたが望む要素だけを選択するのに十分であることを確認しなければなりません。名前空間接頭辞wdが正しく定義されていることを確認する必要があります。あなたの実際の例をもっと知らなくても、私たちは言うことができません。

関連する問題