使用Nokogiri读取XML文件是否需要根元素?

时间:2013-04-06 11:33:55

标签: ruby xml nokogiri

我在读取XML文件时遇到问题,因为它不包含“root”。

如果我有这样的文件:

<?xml version="1.0" encoding="utf-8"?>
<a>
<country>US</country>
</a>
<b>
<country>UK</country>
</b>

Nokogiri似乎只阅读第一个元素。如果XML文件有根元素,它似乎工作正常。我正在使用Nokogiri 1.5.6。

这有效:

<?xml version="1.0" encoding="utf-8"?>
<root>
<a>
<country>US</country>
</a>
<b>
<country>UK</country>
</b>
</root>

2 个答案:

答案 0 :(得分:5)

没有根元素,它不是一个完整的XML文档。您可以在解析之前将XML包装在根元素中,也可以从中创建Nokogiri::XML::DocumentFragment

理想情况下,您可以修复创建XML的任何内容。

答案 1 :(得分:-1)

站点地图没有根元素。站点地图是XML文档,站点地图协议定义它没有根元素。 http://www.sitemaps.org/protocol.html