【发布时间】:2019-04-17 00:06:00
【问题描述】:
我发现importNode之后的xml会有一个“default”前缀。经过一些实验,我发现了一些奇怪的现象。 如何解释以下结果: 代码在这里:
<?php
$dom = new DOMDocument();
$xml = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<A xmlns="xmlns://www.abc.com"><B/></A>
XML;
$dom->loadXML($xml);
$new_dom = new DOMDocument();
$new_root = $new_dom->createElement("root");
$new_node = $new_dom->importNode($dom->documentElement->childNodes->item(0), TRUE);
//order is important
$new_dom->appendChild($new_root); //1
$new_root->appendChild($new_node); //2
$new_node->removeAttributeNS("xmlns://www.abc.com", ""); //3
//
echo $new_dom->saveXML()
?>
123
<?xml version="1.0"?>
<root><B/></root>
132,231,321,312
<?xml version="1.0"?>
<root><default:B/></root>
213
<?xml version="1.0"?>
<root xmlns:default="xmlns://www.abc.com"><default:B/></root>
【问题讨论】:
标签: php xml dom namespaces