首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取xmllint xpath soap

获取xmllint xpath soap
EN

Stack Overflow用户
提问于 2018-10-02 13:34:33
回答 1查看 1.2K关注 0票数 3

我需要解析这个xml:

代码语言:javascript
复制
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
        <soap:Header/>
        <soap:Body> <m:runResponse xmlns:m="http://www">
        <m:return xmlns:xs="http://www.w3.org/2001/XMLSchema"
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">true;231;470;159;194;1439;476;637;99842;1164</m:return>
</m:runResponse></soap:Body>
</soap:Envelope>

需要得到

真;231;470;159;194;1439;476;637;99842;1164

我知道:

代码语言:javascript
复制
xmllint --xpath "/soap:Envelope/soap:Body/m:runResponse/m:return" out.xml

并得到结果:

代码语言:javascript
复制
XPath error : Undefined namespace prefix
xmlXPathEval: evaluation failed
XPath evaluation failure

我怎么能解析它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-02 14:15:40

使用xmllint

代码语言:javascript
复制
xmllint --xpath "//*[local-name()='Envelope']/*[local-name()='Body']/*[local-name()='runResponse']/*[local-name()='return']/text()" file.xml

但是我更喜欢xmlstarlet,我发现它比较容易:

代码语言:javascript
复制
xmlstarlet sel -N soap="http://www.w3.org/2003/05/soap-envelope" -N m="http://www" -t -v '//soap:Envelope/soap:Body/m:runResponse/m:return' file.xml
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52609492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档