zne*_*eak 5 php simplexml domdocument
对于我的一个项目,我正在使用DOMDocument该类来加载和操作XML文档.
我需要检索文档中使用的每个命名空间; 但是,我找不到我是怎么做到的.本DOMDocument类有方法来获取一个URI或命名空间前缀的URI的名称空间前缀,但我什么也没看见实际枚举注册的命名空间.
该SimpleXML图书馆拥有getNamespaces()该方法.是否有相应的DOMDocument?
DOM没有这样的功能.我简要地看了一下SimpleXml的源代码,我认为它迭代加载的XML并收集命名空间(我的C非常糟糕).最简单的解决方案是通过将DOM dom导入SimpleXml来获取命名空间.也许是这样的:
class DomUtils
{
public static function getNamespaces($dom)
{
$sxe = simplexml_import_dom($dom);
return $sxe->getNamespaces();
}
public static function getDocNamespaces($dom)
{
$sxe = simplexml_import_dom($dom);
return $sxe->getDocNamespaces();
}
}
Run Code Online (Sandbox Code Playgroud)
您还可以尝试使用XPath获取所有名称空间.请参阅以下问题和答案: