xmllint shell não mostrando o número da expressão xpath count?

6

Estou usando o shell interativo do xmllint no cygwin. Eu gostaria de contar o número de nós, mas xmllint não parece se comportar como eu esperava:

$> 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

Ele diz que é um número, mas não mostra o número de uma maneira que vi nas pesquisas na Web:

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

O que está errado aqui?

$> 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
    
por user394 03.05.2013 / 16:13

1 resposta

6

Sei que @Stephane mencionou isso nos comentários, mas me deparei com essa técnica e ia postar essa resposta antes de ver o comentário dele com a mesma solução. Não tenho certeza da etiqueta para isso, mas aqui está o que eu encontrei. O LMK e eu podemos excluir esta resposta se for inadequado postar uma resposta no comentário de outra pessoa.

Solução

Você precisa usar o comando xpath no xmllint para exibir o resultado retornado da função 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
/ > 

Encontrou a resposta aqui neste site: Jogando com Expressões XPath no Shell xmllint .

    
por 03.05.2013 / 18:52

Tags