我有以下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'