파일을 다운로드하지 않고 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

관련 정보