我在 stackoverflow 上找到了很多关于 xmllint 及其“命名空间支持”的主题,但没有一个对我有帮助。
这是我的 xml(准确地说是 xsd)文件:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema">
<xsd:annotation>
<xsd:documentation>My Text</xsd:documentation>
</xsd:annotation>
</xsd:schema>
我想从此文件中检索“我的文本”链,所以我试试这个:
xmllint myfile.xsd --xpath "/*[namespace-uri()='http://www.w3.org/2001/XMLSchema' and
name()='schema']/*[namespace-uri()='http://www.w3.org/2001/XMLSchema' and
name()='annotation']/*[namespace-uri()='http://www.w3.org/2001/XMLSchema' and
name()='documentation']/text()"
但它不起作用。我得到“分段错误”。
更新
我还有一个问题:我应该使用什么来在此文件中获取标签的属性“toto”值:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:toto="testAtributeValue">
<xsd:annotation>
<xsd:documentation>myText</xsd:documentation>
</xsd:annotation>
</xsd:schema>
换句话说,我想得到“testAtributeValue”