我有以下XML:
<body>
<hello xmlns='http://...'>
<world>yes</world>
</hello>
</body>
当我将其加载到Nokogiri XML文档中并致电document.at_css "world"
时,我会收到nil
。但是当我删除hello
的命名空间时,它完美无缺。我知道我可以调用document.remove_namespaces!
,但为什么它不能用于命名空间?
答案 0 :(得分:1)
因为Nokogiri要求您注册要查询的XML命名空间(请阅读有关XML Namespaces的更多信息)。但是,如果在调用at_css
时指定其名称空间,则仍应该能够查询该元素。要查看具体用法,请查看css
method documentation。最终应该看起来像这样:
document.at_css "world", 'namespace_name' => 'namespace URI'