2016-10-05 10 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

도움이된다면 다른 질문에 대한 대답을 upvote하는 것을 잊지 마십시오. ;-) –

답변

1

을 XPath를가 제대로 작동하고 당신이 찾고있는 요소를 선택하는 것입니다. XPath식이 발견 한 노드를 표시하는 데 문제가 있습니다. XPath 자체가 아닌 XPath의 결과를 처리하는 데 사용하는 응용 프로그램 또는 도구에 따라 달라질 수 있습니다.