3

我有以下 XML:

<body>
  <hello xmlns='http://...'>
     <world>yes</world>
  </hello>
</body>

当我将它加载到 Nokogiri XML 文档中并调用document.at_css "world"时,我会收到nil回复。但是当我删除 的命名空间时hello,它工作得很好。我知道我可以调用document.remove_namespaces!,但为什么它不适用于命名空间?

4

1 回答 1

1

因为 Nokogiri 要求您注册要在其中查询的 XML 命名空间(阅读有关XML 命名空间的更多信息)。但是,如果您在调用时指定其命名空间,您应该仍然能够查询该元素at_css。要查看确切的用法,请查看css方法文档。它最终应该看起来像这样:

document.at_css "world", 'namespace_name' => 'namespace URI'
于 2013-04-09T02:40:35.290 回答