我有一个产品的XML Feed,我在PHP中使用DOMDocument
和DOMXpath
分解为较小的XML文件。
我创建新的XML文件,添加根节点,然后从主Feed导入所有深度复制的节点。我想从导入的节点中删除命名空间。
我尝试$node->removeAttributeNS( 'myurl' , '' )
从节点中正确删除xmlns
属性但创建了默认命名空间,因此输出看起来像
<default:node />
希望删除与导入节点关联的任何名称空间跟踪,以便注册新的名称空间。
感激不尽的任何提示。
答案 0 :(得分:0)
我不确定这是否实际上是您正在寻找的但是您是否考虑过使用xml_parser_create()
或`xml_parser_create_ns()来创建解析器,然后设置自己的处理函数来删除命名空间。 / p>
$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