这就是我所拥有的。它显然没有做它应该做的事情甚至崩溃。有什么不对,还是有其他工具可以帮我解析BASH中的XML?
:~$ cat test.xml
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.ant.freeform</type>
</project>
:~$ xmllint --xpath '//type/text()' test.xml
Segmentation fault (core dumped)
:~$ xmllint --xpath '//type' test.xml
XPath set is empty
答案 0 :(得分:0)
要搜索命名空间元素,您可以测试本地名称,如下所示:
xmllint --xpath '//*[local-name()="type"]/text()' test.xml
更精确的方法是
xmllint --xpath '//*[namespace-uri()="http://www.netbeans.org/ns/project/1" and local-name()="type"]/text()' test.xml
答案 1 :(得分:-1)
您的问题是您的XML ...不是有效的XML文件。
在此之前尝试:
sed -i '1i <?xml version="1.0" encoding="UTF-8"?>' test.xml
经过测试,您遇到了名称空间问题,请尝试以下方法:
xmllint --shell test.xml
/ > setns x=http://www.netbeans.org/ns/project/1
/ > xpath /x://type/text()