首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用xidel从XML中提取数据

如何用xidel从XML中提取数据
EN

Stack Overflow用户
提问于 2020-06-30 09:14:32
回答 2查看 190关注 0票数 0

我的脚被xidel弄湿了,我想和namesilo.com一起使用它来更新DNS记录。我在构造正确的选择器时遇到了困难。假设我有以下xml响应,如何为宿主record_id选择www.mydomain.org

代码语言:javascript
复制
<?xml version="1.0"?>
<namesilo>
  <request>
    <operation>dnsListRecords</operation>
    <ip>62.157.5.106</ip>
  </request>
  <reply>
    <code>300</code>
    <detail>success</detail>
    <resource_record>
      <record_id>7e1abd117be5506febe327ab906f67c7</record_id>
      <type>A</type>
      <host>www.mydomain.org</host>
      <value>182.245.2.23</value>
      <ttl>172817</ttl>
      <distance>0</distance>
    </resource_record>
    <resource_record>
      <record_id>7e75694e3da869315b92d386dcbed45b</record_id>
      <type>A</type>
      <host>m.mydomain.org</host>
      <value>21.148.13.45</value>
      <ttl>172817</ttl>
      <distance>0</distance>
    </resource_record>
  </reply>
</namesilo>

我还没通过xidel --extract //resource_record,真的。到目前为止,//resource_record[host="www.mydomain.org"]/record_id和类似的所有尝试都失败了。通过grep和sed管道可以通过xidel --extract //resource_record | grep www.mydomain.org | sed s/www.mydomain.org.*//处理原始的、未修饰的XML--我想是来自namesilo.com的响应,但我相信还有更好的方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-03 21:53:55

不工作:xidel -e //resource_record[host="www.mydomain.org"]/record_id

一般来说,建议引用(提取)查询。但这并不意味着没有引号就行不通:

代码语言:javascript
复制
xidel -s <input> -e //resource_record\[host=\"www.mydomain.org\"\]/record_id
7e1abd117be5506febe327ab906f67c7

只是你必须通过转义来防止某些字符被Bash的shell解释。

票数 1
EN

Stack Overflow用户

发布于 2020-07-02 09:37:59

不工作:xidel -e //resource_record[host="www.mydomain.org"]/record_id

作品:xidel -e '//resource_record[host="www.mydomain.org"]/record_id'

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62654078

复制
相关文章

相似问题

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