[英]Extract section of xml from result of curl command on Linux
我发出以下命令:
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 元素的最简单方法是什么,例如元素“true”?
注意,我想要完整的开始标签、内容和结束标签(内容也可能是空的。
谢谢
使用XML::Twig附带的xml_grep
,您可以执行curl http://localhost:8082/some-url | xml_grep --nowrap disabled
curl http://localhost:8082/some-url | xml_grep --nowrap disabled
(我假设你想要disabled
元素的内容,我在你的数据中没有看到任何true
元素)
xmllint 是否也适合您?
$ curl -s http://localhost:8082/some-url | xmllint --xpath '//user/disabled' -
或与xsh
( http://xsh.sourceforge.net/ ) 相同:
$ curl -s http://localhost:8082/some-url | xsh -q -I - -C 'ls //user/disabled/text()'
经典的解决方案是使用xmlstarlet
, 例如用于 RSS 提要:
URL="https://feeds.feedburner.com/TEDenEspanol"
curl -s $URL | xmlstarlet sel -t -v 'rss/channel/title'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.