我有一个 Nokogiri 节点,我正在执行一个 xpath 查询,它应该返回一个 NodeSet。相反,它返回一个字符串。我检查了xml源,发现数据只包含一个元素而不是多个元素。
它不应该返回一个只有一个值的 NodeSet,而不是一个字符串吗?我该如何处理?
这是正确返回具有 2 个条目的 NodeSet的伪xml:
<root>
<products>
<product>
<productID>1</productID>
</product>
<product>
<productID>2</productID>
</product>
</product>
</root>
这是伪xpath 查询:
//root/products/product
如果 xml 只包含一个产品,我会得到一个 String 而不是一个带有 1 个条目的 NodeSet
<root>
<products>
<product>
<productID>1</productID>
</product>
</product>
</root>
2012 年 6 月 12 日更新:我仍然认为这是 Nokogiri 中的一个错误。上面的伪 xml 没有重现这种情况,但是我有几个来自客户端的 xml 示例,它们确实重现了这个问题。我可能会发布 xml 的混淆版本。无论如何,我已将代码更改为使用XmlSimple而不是 Nokogiri。