【问题标题】:Cant Read xml file using sax Parser with Nokogiri无法使用带有 Nokogiri 的 sax Parser 读取 xml 文件
【发布时间】:2016-12-10 05:06:56
【问题描述】:

我正在使用 ruby​​ 1.9.3 和 rails 3.1。我的要求是有一个像下面这样的解析器文件。当我用浏览器打开时;标签未按顺序排列。在<item>之后;数据是俱乐部格式。存在

<?xml version="1.0" encoding="utf-8"?>

当我以崇高的文字打开时;它显示在<item>之后

<![CDATA[<?xml version="1.0" encoding="utf-8"?>

&lt;/item&gt; 之后还有]]&gt;。需要解析的数据在这个&lt;item&gt;&lt;/item&gt;里面。名为 parse_file 的方法从 Nokogiri 仅调用 start_element, end_element。当我们通过删除上述语句来手动编辑文件时;然后它将调用characters 方法来获取数据。下面是示例代码,还有其他方法吗?

<batch transactionType="HC"><item><?xml version="1.0" encoding="utf-8"?><C><CI><Ve>00501</Ve></CI></C></item></batch>

【问题讨论】:

  • 请不要使用图像来传达用于测试代码的数据。我们不能重复使用它,必须输入它,因此复制并粘贴证明问题所需的最少数据。此外,如果它的链接腐烂并破坏您的问题将没有任何意义。请阅读“minimal reproducible example”。 “请为此提供自动化解决方案。”?我们希望看到您为解决问题所做的努力。 SO 不是“给我代码”网站,而是我们帮助您修复您编写的代码。 “How much research effort is expected of Stack Overflow users?”很有用。
  • 我很抱歉我的话有点坦率。我将编辑问题。但是我已经尝试了所有方法来解决这个问题.. 我放这张图片来显示 xml 当前在浏览器中的显示方式。我相信没有其他方法可以证明这一点。有没有办法解决这个问题..
  • 我们仍然需要看到您为解决问题所做的努力,否则看起来您希望我们为您编写它。

标签: ruby ruby-on-rails-3 xml-parsing nokogiri sax


【解决方案1】:

您可以使用“xml-simple”轻松完成。假设您的 XML 文件名为“test.xml”,首先安装 gem:

 gem install xml-simple

那么,你可以试试:

require "XmlSimple"

abc = XmlSimple.xml_in File.read("test.xml")

puts abc['item']

输出应该是:

{"C"=>[{"CI"=>[{"Ve"=>["00501"]}]}]}

【讨论】:

  • `require': 无法加载此类文件 -- XmlSimple (LoadError)
  • 啊,请安装。 gem install xml-simple
  • 能否请您发布以下输出:- linux/mac - which gem windows - where gem
  • 请努力正确格式化您的答案。另请注意,这是一个 Nokogiri 问题,而不是 XmlSimple 问题。我们了解您正在尝试提供帮助,但这意味着要在问题的要求范围内工作并提供易于阅读的答案。
猜你喜欢
  • 1970-01-01
  • 2018-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-26
  • 1970-01-01
  • 1970-01-01
  • 2013-02-10
相关资源
最近更新 更多