Nokogiri将字符串解析为xml

时间:2018-03-19 18:13:41

标签: ruby xml parsing nokogiri

如何更改Nokogiri::XML('<moreThan>8</moreThan><lessThan>13</lessThan>').children

返回<moreThan>8</moreThan><lessThan>13</lessThan>

(因为它只返回<moreThan>8</moreThan>

谢谢!

2 个答案:

答案 0 :(得分:1)

Nokogiri::XML解析XML 文档。有效的XML文档可以有only one root element,因此Nokogiri会通过忽略第二个(无效)元素来尝试使您的文档有效。

您需要先将文档包装在根元素中,然后检索该根元素的子元素,才能使文档生效。

Nokogiri::XML("<myroot>#{myxml}</myroot>").root.children

答案 1 :(得分:0)

是否可以像这样包装XML?

<parent><moreThan>8</moreThan><lessThan>13</lessThan></parent>

结果:

Nokogiri::XML('<parent><moreThan>8</moreThan><lessThan>13</lessThan></parent>').children

将是:

<moreThan>8</moreThan><lessThan>13</lessThan>