我有一个产品的 XML 提要,我使用 DOMDocument
将其分解为较小的 XML 文件。和 DOMXpath
在 PHP 中。
我创建新的 XML 文件,添加一个根节点,然后从主提要中导入所有深度复制的节点。我想从导入的节点中删除命名空间。
我试过 $node->removeAttributeNS( 'myurl' , '' )
正确删除 xmlns
来自节点的属性,但会创建一个默认命名空间,因此输出看起来像
<default:node />
想要删除与准备注册新命名空间的导入节点相关联的命名空间的任何痕迹。
感谢收到任何提示。
最佳答案
我不确定这是否真的是您要找的,但您是否考虑过使用 xml_parser_create()
或 `xml_parser_create_ns() 来创建一个解析器,然后设置你自己的处理函数来删除命名空间。
$xmlParser = xml_parser_create();
xml_set_element_handler($xmlParser, "startElementHandler", "endElementHandler"); // start and end ElementHandlers are call backs to your handling functions that handle the beginning and ending of tags.
xml_set_default_handler($xmlParser, "handleMe"); // handleMe is a callback to your function to handle the data inside the tags.
xml_parse($xmlParser, $xmlData);
有更多函数可用于处理 php.net 上的 xml
关于php - 导入 XML 节点并删除命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4746748/