ruby gem xml-简单:不同输入输出相同
ruby gem xml-simple: same output for different input
我正在努力使用 xml-简单 (1.1.5) gem。
这是我在 test.xml:
中的输入
<bib>
<title><br/>X</title>
<title>X<br/>X</title>
<title>X<br/></title>
</bib>
现在看看使用 irb 会发生什么,如下所示:
$ irb -rxmlsimple -rpp
>> pp XmlSimple.xml_in("test.xml")
{"title"=>
[{"br"=>[{}], "content"=>"X"},
{"br"=>[{}], "content"=>["X", "X"]},
{"br"=>[{}], "content"=>"X"}]}
=> {"title"=>[{"br"=>[{}], "content"=>"X"}, {"br"=>[{}], "content"=>["X", "X"]}, {"br"=
>>
很明显,第一条和最后一条记录虽然不同,但在输出中给出了相同的哈希值。
这是一个错误吗?
xml-简单 gem 不能可靠地处理混合内容。这是其文档的摘录:
混合内容(包含文本内容和嵌套元素的元素)将不会以有用的方式表示 - 元素顺序和重要的空白将会丢失。如果您需要处理混合内容,那么 XmlSimple 不是适合您工作的工具。
我正在努力使用 xml-简单 (1.1.5) gem。 这是我在 test.xml:
中的输入<bib>
<title><br/>X</title>
<title>X<br/>X</title>
<title>X<br/></title>
</bib>
现在看看使用 irb 会发生什么,如下所示:
$ irb -rxmlsimple -rpp
>> pp XmlSimple.xml_in("test.xml")
{"title"=>
[{"br"=>[{}], "content"=>"X"},
{"br"=>[{}], "content"=>["X", "X"]},
{"br"=>[{}], "content"=>"X"}]}
=> {"title"=>[{"br"=>[{}], "content"=>"X"}, {"br"=>[{}], "content"=>["X", "X"]}, {"br"=
>>
很明显,第一条和最后一条记录虽然不同,但在输出中给出了相同的哈希值。
这是一个错误吗?
xml-简单 gem 不能可靠地处理混合内容。这是其文档的摘录:
混合内容(包含文本内容和嵌套元素的元素)将不会以有用的方式表示 - 元素顺序和重要的空白将会丢失。如果您需要处理混合内容,那么 XmlSimple 不是适合您工作的工具。