2011-01-20 69 views
2

我有一个产品的XML供稿,我使用PHP中的DOMDocumentDOMXpath分解成更小的XML文件。XML节点的导入和删除命名空间

我创建新的XML文件,添加一个根节点,然后从主要源中导入所有深度复制的节点。我想从导入的节点中删除命名空间。

我试图$node->removeAttributeNS('myurl' , '')其正确删除从节点xmlns属性,但创建一个默认的命名空间,以便输出看起来像

<default:node /> 

想删除与进口节点准备注册相关的命名空间的任何踪迹新的命名空间。

任何提示感激地收到。

回答

0

我不确定这是否实际上是您要查找的内容,但您是否想过使用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更多的功能