2016-08-04 56 views
-1

我使用Ruby 1.9.3轨道3.1。我的要求是有一个像下面的解析器文件。当我用浏览器打开时;标签不按顺序排列。经过<item>;数据是棍棒形式。还有就是无法读取使用萨克斯xml文件与Nokogiri解析器

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

,当我在崇高的文本开了存在;它示出了<item>

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

也之后</item>后有]]>存在。需要解析的数据在<item></item>之内。名为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> 
+0

请不要用图像传达用于测试代码的数据。我们不能重复使用,必须输入,以便复制和粘贴证明问题所需的最少数据。此外,如果它的链接腐烂,并打破你的问题是没有任何意义的。请阅读“[mcve]”。 “请为此提供一个自动化解决方案。”?我们希望看到你解决问题的努力。 SO不是“给我代码”网站,而是我们帮你修复你写的代码。 “[Stack Overflow用户需要多少研究工作?](http://meta.stackoverflow.com/q/261592/128421)”很有用。 –

+0

我很抱歉我的话有点坦率。我将编辑该问题。但我已经尝试了所有的方法来解决这个问题..我把这张图片显示xml目前在浏览器中显示的原因。我相信没有其他方式可以证明这一点。有没有办法解决这个问题.. –

+0

我们仍然需要看到你解决问题的努力,否则它看起来像你希望我们为你写。 –

回答

0

您可以轻松地通过其他名为“xml-simple”的模块来完成。假设你的XML文件名是 “的test.xml”

首先安装宝石: -

gem install xml-simple 

那么,你可以尝试这样的代码: -

require "XmlSimple" 

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

puts abc['item'] 

输出: -

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

'require':无法加载这样的文件 - XmlSimple(LoadError) –

+0

啊,请安装。 创业板安装XML的简单 –

+0

没有运气...还是老样子一样.. –