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

问题描述 投票:3回答:2

当我不包含'root'时读取XML文件时遇到问题。

如果我有这样的文件:

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

Nokogiri似乎只阅读第一个元素。如果XML文件具有root元素,则看起来工作正常。我正在使用Nokogiri 1.5.6。

此作品:

<?xml version="1.0" encoding="utf-8"?>
<root>
<a>
<country>US</country>
</a>
<b>
<country>UK</country>
</b>
</root>
ruby xml nokogiri
2个回答
6
投票

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

Nokogiri::XML::DocumentFragment.parse(str)

而不是:

Nokogiri::XML(str)

理想情况下,您修复了创建XML的所有内容。


0
投票

站点地图没有根元素。站点地图是XML文档,站点地图协议在没有根元素的情况下对其进行了定义。 http://www.sitemaps.org/protocol.html

© www.soinside.com 2019 - 2024. All rights reserved.