我发出以下命令:
curl http://localhost:8082/some-url
返回与此类似的xml:
<?xml version="1.0" encoding="UTF-8"?><user><dateCreated>1</dateCreated><dateLastModified>1</dateLastModified><id>1</id><disabled>false</disabled><firstName></firstName><lastName></lastName></user>
从响应中提取xml元素的最简单方法是什么,例如元素&#34;真&#34;?
注意,我想要完整的开始标记,内容和结束标记(内容也可能是空的。
由于
答案 0 :(得分:4)
使用XML::Twig附带的xml_grep
,您可以curl http://localhost:8082/some-url | xml_grep --nowrap disabled
(我假设您想要disabled
元素的内容,我不会看到数据中的任何true
元素
答案 1 :(得分:2)
xmllint也可以作为你的选择吗?
$ curl -s http://localhost:8082/some-url | xmllint --xpath '//user/disabled' -
答案 2 :(得分:0)
或与xsh
(http://xsh.sourceforge.net/)相同:
$ curl -s http://localhost:8082/some-url | xsh -q -I - -C 'ls //user/disabled/text()'
答案 3 :(得分:0)
经典的解决方案是将xmlstarlet
用于example作为RSS源:
URL="https://feeds.feedburner.com/TEDenEspanol"
curl -s $URL | xmlstarlet sel -t -v 'rss/channel/title'