Почему этот xpath не работает?
Данный документ a.xml:
<?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>
Я хочу извлечь XML из <user>
узел, который имеет элемент id со значением "user1".
@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 ответ
XPath работает правильно и выбирает элемент, который вы ищете. У вас есть проблема с отображением узла, найденного выражением XPath. Это будет зависеть от приложения или инструмента, который вы используете для обработки результатов XPath, а не от самого XPath.