I don’t use xmllint, but I think the reason your XPath isn’t working is because your doc.xml file is using a default namespace (http://purl.org/net/ulf/ns/0.4-02
).
From what I can see, you have 2 options.
A. Use xmllint in shell mode and declare the namespace with a prefix. You can then use that prefix in your XPath.
xmllint --shell doc.xml
/ > setns x=http://purl.org/net/ulf/ns/0.4-02
/ > xpath /x:chat
B. Use local-name()
to match element names.
xmllint --xpath /*[local-name()='chat']
You may also want to use namespace-uri()='http://purl.org/net/ulf/ns/0.4-02'
along with local-name()
so you are sure to return exactly what you are intending to return.