嗨,我不确定这是否可能,我已经在谷歌上检查了很多选项。
例如,如果我有一个包含 xml 内容的 http URL:http://server.com/lastBuild/api/xml
内容如下所示,<building>false</building>
可以出现在多行中
<action/> <building>false</building> <displayName>mercury_system</displayName> <duration>1606128</duration>
我可以在不将内容下载到本地的情况下解析相同的 http url 并打印最后一次出现的“false”字符串<building>false</building>
吗?
答案1
您不需要先将其“下载”到文件中。您可以将其作为管道的一部分临时下载
使用xmlstarlet 解析 xml
curl 'http://example.com/lastBuild/api/xml'
| xmlstarlet sel -t -c "//building[last()]/text()"
答案2
sed 替代方案:
$ curl -s 'https://raw.githubusercontent.com/gevasiliou/PythonTests/master/test.xml' |tac |sed -n '/<building>/{s/<.[^>]*>//g;p;q}'
success