Linux

如何在不下載文件並列印所需字元串的情況下從 http URL 解析 xml 文件?

  • June 16, 2017

嗨,我不確定這是否可能,我已經檢查了Google的許多選項。

例如,如果我有一個包含 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 而不將內容下載到本地並列印最後一次出現的“假”字元串<building>false</building>嗎?

您無需先將其“下載”到文件中。您可以將其作為管道的一部分臨時下載

使用xmlstarlet 解析xml

curl 'http://example.com/lastBuild/api/xml' 
| xmlstarlet sel -t -c "//building[last()]/text()"

Sed 替代方案:

$ curl -s 'https://raw.githubusercontent.com/gevasiliou/PythonTests/master/test.xml' |tac |sed -n '/<building>/{s/<.[^>]*>//g;p;q}'
     success

引用自:https://unix.stackexchange.com/questions/371345