2016-10-05 14 views
0

所与docuentのa.xml:なぜこのxpathが機能しないのですか?

<?xml version="1.0"?> 
<xml> 
    <listUsersResponse xmlns="http://www.algorithmics.com/schema"> 
    <status>OK</status> 
    <users size="615"> 
     <user> 
     <id>user1</id> 
     <name>Joe Doe</name> 
     <attributes size="0"/> 
     <status>ACTIVE</status> 
     <roleId>CREDIT_SUPPORT</roleId> 
     <password>454E454A77484D3566717547686858726842503755513D3D</password> 
     <timeout>0</timeout> 
     </user> 
     <user> 
     <id>user2</id> 
     <name>Tom Smith</name> 
     <attributes size="0"/> 
     <status>ACTIVE</status> 
     <roleId>RISK_MANAGEMENT</roleId> 
     <password>627678416458513567624E37384C314E626C30672B773D3D</password> 
     <timeout>0</timeout> 
     </user> 
    </users> 
    </listUsersResponse> 
</xml> 

私は値 "USER1" のid要素を有する<user>ノードのXMLを抽出します。

@skovorodkin:ありがとうございます。今私はノードを取得します。しかし、それはノードの完全な内容を表示しません:

$ xmllint --shell a.xml <<EOF 
...setns x=http://www.algorithmics.com/schema 
...xpath //x:users/x:user[x:id="user1"] 
...EOF 
/>/> Object is a Node Set : 
Set contains 1 nodes: 
1 ELEMENT user 

私は期待:

<user> 
     <id>user1</id> 
     <name>Joe Doe</name> 
     <attributes size="0"/> 
     <status>ACTIVE</status> 
     <roleId>CREDIT_SUPPORT</roleId> 
     <password>454E454A77484D3566717547686858726842503755513D3D</password> 
     <timeout>0</timeout> 
</user> 
+1

XMLに名前空間があるため、クエリを調整する必要があります。この回答を確認してください:http://stackoverflow.com/a/8266075/847552 – skovorodkin

+0

ありがとう。私は自分の投稿を更新しました。結果の完全な内容を表示することは可能でしょうか? – AlexL

+1

助けてくれれば、もう1つの質問で回答をupvoteすることを忘れないでください。 ;-) –

答えて

1

XPathが正常に動作し、あなたが探している要素を選択しています。 XPath式が検出したノードが表示される問題があります。これは、XPath自体ではなく、XPathの結果を処理するために使用するアプリケーションやツールに依存することになります。

関連する問題