xmllint 쉘이 count xpath 표현식의 숫자를 표시하지 않습니까?

xmllint 쉘이 count 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 표현식 다루기.

관련 정보