xmllintシェルはxpath式に数値計算を表示しませんか?

xmllintシェルはxpath式に数値計算を表示しませんか?

私はcygwinでxmllintの対話型シェルを使用しています。ノード数を数えたいのですが、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
/ > 

このサイトで答えを見つけました:xmllintシェルでXPath式を使用する

おすすめ記事