繁体   English   中英

从 Linux 上 curl 命令的结果中提取 xml 部分

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM