0

我必须为分层组织的数据集写下 xml 模式。它必须由 Nokogiri 解析以进行信息检索。我的问题是,从性能的角度来看,尊重层次结构更好还是扁平化它更好?例如

<item_1 id="id_1">
  <item_2 id="id_2">value</item_2>
</item_1>

或者

<item id_1="id_2" id_2="id_2">value</item>

我知道就可读性和可维护性而言应避免使用多个属性,但性能是我的首要任务。

4

1 回答 1

1

如果您想要绝对最快的性能并且文档很大,您可能根本不想使用 XPath。SAX(或阅读器)过滤器将是最快的。

但是,如果您要让 Nokogiri 解析文档并为 XPath 创建一个 DOM,我认为您是否使用以下方式进行查询不会有太大的不同:

doc.xpath('/item1[@id=x]/item2[@id=y]') #first case

或者

doc.xpath('/item[@id_1=x and @id2=y]') #second case

当然,根据您的真实数据对这两种解决方案进行基准测试是确定的唯一方法。

于 2013-06-10T01:38:11.530 回答