我从我的 gmail 帐户中获取了一些我想解析的 xml 数据。xml 数据如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://purl.org/atom/ns#" version="0.3">
<title>Gmail - Inbox for @gmail.com</title>
<tagline>New messages in your Gmail Inbox</tagline>
<fullcount>54</fullcount>
<link rel="alternate" href="http://mail.google.com/mail" type="text/html"/>
<modified>2014-11-25T04:40:04Z</modified>
<entry>
<title>test</title>
<summary/>
...
</feed>
我希望获得所有条目的所有标题,例如:
xmllint --xpath '//feed/entry/title' myfile.xml
现在,我发现如果没有这个 xmlns 信息,这将起作用。但是有了 xmlns 信息,我得到了消息
XPath 集为空
我想要一个简单的 oneliner 来解析这个文件,而不必修改文件(删除 xmlns 部分)。
--> 编辑:感谢@Mathias,正确的在线人看起来像: echo "setns x= http://purl.org/atom/ns# \nxpath /x:feed/x:entry/x:title/text( )"