Оболочка xmllint не отображает число из выражения xpath?

Оболочка xmllint не отображает число из выражения xpath?

Я использую интерактивную оболочку xmllint на cygwin. Я хотел бы посчитать количество узлов, но xmllint, похоже, ведет себя не так, как я ожидал:

$> cat test.xml
<?xml version="1.0"?>
<result>
  <node>
    <item/>
    <item/>
    <item/>
    <item/>
    <item/>
  </node>
</result>
$> xmllint --shell test.xml
/ > cat count(/result/node/item)
count(/result/node/item) is a number

Там написано, что это число, но само число отображается не так, как я видел в результатах веб-поиска:

count(/result/node/item) is a number : 5

Что здесь не так?

$> xmllint --version
xmllint: using libxml version 20706
   compiled with: Threads Tree Output Push Reader Patterns Writer SAXv1 FTP HTTP DTDValid HTML Legacy C14N Catalog XPath XPointer XInclude Iconv ISO8859X Unicode Regexps Automata Expr Schemas Schematron Modules Debug Zlib

решение1

Я понимаю, что @Stephane упомянул об этом в комментариях, но я наткнулся на эту технику и собирался опубликовать этот ответ до того, как увидел его комментарий с тем же решением. Не уверен в этикете для этого, но вот что я нашел. LMK и я можем удалить этот ответ, если неуместно публиковать ответ на чужой комментарий.

Решение

Вам необходимо использовать xpathкоманду внутри xmllint для отображения результата, возвращаемого функцией count.

$ xmllint --shell test.xml 
/ > cat         
<?xml version="1.0"?>
<result>
  <node>
    <item/>
    <item/>
    <item/>
    <item/>
    <item/>
  </node>
</result>

/ > xpath count(/result/node/item)
Object is a number : 5
/ > 

Ответ нашел здесь, на этом сайте:Игра с выражениями XPath в оболочке xmllint.

Связанный контент