gpt4 book ai didi

php - 枚举 PHP DOMDocument 对象的注册命名空间

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:34:08 24 4
gpt4 key购买 nike

对于我的一个项目,我使用 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();
}
}

您还可以尝试使用 XPath 获取所有命名空间。请参阅以下问题和答案:

关于php - 枚举 PHP DOMDocument 对象的注册命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2572365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com