ファイルをダウンロードせずにhttp URLからxmlファイルを解析し、必要な文字列を印刷する方法は?

ファイルをダウンロードせずにhttp URLからxmlファイルを解析し、必要な文字列を印刷する方法は?

こんにちは。これが可能かどうかはわかりません。 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を解析し、コンテンツをローカルにダウンロードせずに最後に表示される「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

関連情報