Почему этот 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.

Другие вопросы по тегам