我有以下XML: <body> <hello xmlns='http://...'> <world>yes</world> </hello> </body> 当我将这个加载到Nokogiri XML文档中并调用document.at_css "world"时,会返回nil。但是当我移除hello的命名空间时,它就可以正常工作了。我知道可以调用document.remove_namespaces!,但为什么在有命名空间的情况下无法使用?
因为 Nokogiri 要求您在查询时注册 XML 命名空间(请阅读有关 XML 命名空间 的更多信息)。但是,如果在调用 at_css 时指定其命名空间,仍应该能够查询元素。要查看确切的用法,请查看 css 方法文档。它应该看起来像这样:document.at_css "world", 'namespace_name' => 'namespace URI'
css
,而不是xpath
。 - TheDude