【问题标题】:Parsing XML with Ruby and Nokogiri使用 Ruby 和 Nokogiri 解析 XML
【发布时间】:2010-06-21 22:21:51
【问题描述】:

我有以下 XML 结构:

<charsets>
  <charset>
    <name>ANSI_X3.4-1968</name>
    <aliases>
      <alias>iso-ir-6</alias>
      <alias>ANSI_X3.4-1986</alias>
      <alias>ISO_646.irv:1991</alias>
      <alias>ASCII</alias>
      <alias>ISO646-US</alias>
      <alias>US-ASCII</alias>
      <alias>us</alias>
      <alias>IBM367</alias>
      <alias>cp367</alias>
      <alias>csASCII</alias>
    </aliases>
  </charset>
  <charset>
    <name>ISO-10646-UTF-1</name>
    <aliases>
      <alias>csISO10646UTF1</alias>
    </aliases>
  </charset>
</charsets>

我可以使用 Ruby 和 Nokogiri 获取 name 节点的文本内容:

require 'nokogiri'
require 'open-uri'

doc = Nokogiri::XML(File.open("StandardCharsets.xml"))
@charsets = doc.css("charsets name").map {|node| node.children.text }

但是,我想要的是所有namealias 节点的文本内容,其顺序与源文档中显示的顺序相同。我尝试的一切都失败了。

有没有人有一个很好的例子来说明如何做到这一点?

【问题讨论】:

  • 你为什么有require 'open-uri'

标签: ruby xml nokogiri


【解决方案1】:

换行

@charsets = doc.css("charsets name").map {|node| node.children.text }

@charsets = doc.css("charsets name, charsets alias").map {|node| node.children.text }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-20
    • 2014-07-05
    • 1970-01-01
    • 1970-01-01
    • 2012-07-05
    • 2014-03-18
    • 2013-01-05
    相关资源
    最近更新 更多