无法使用带有Nokogiri的sax Parser读取xml文件

时间:2016-08-04 07:35:14

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

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

存在

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

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

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

也在</item>之后]]>出现。需要解析的数据位于此<item></item>内。形成Nokogiri的parse_file方法仅称为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>

1 个答案:

答案 0 :(得分:0)

您可以通过名为“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"]}]}]}