2014-10-27 65 views
1

錯誤「未捕獲的異常‘拋出:DOMException’有消息‘命名空間的錯誤’」,在如何使用「純DOM」在根標籤處設置命名空間(xmlns)聲明?

$dom = new DOMDocument('1.0', 'utf-8'); 
$root = $dom->createElement('MyRoot','Hello'); 
$root->setAttributeNS('http://www.w3.org/1999/xlink','xmlns:xlink','xlink'); 
$dom->appendChild($root); 
die($dom->saveXML()); 

如何設置在根標籤的xmlns聲明?產生

<MyRoot xmlns:xlink="http://www.w3.org/1999/xlink"/>Hello</MyRoot> 
+0

要在片段中使用,請參見[此PHP錯誤](http://stackoverflow.com/q/26593430/287948)。 – 2014-11-10 18:38:04

回答

1

所述的xmlns的名稱空間:的xlink不是它的值,而是一個標準的命名空間。前綴xmlns用於標準名稱空間http://www.w3.org/2000/xmlns/。您不需要定義該名稱空間。

所有名稱空間屬性(xmlns =「...」除外)都是此名稱空間的一部分。

$dom = new DOMDocument('1.0', 'utf-8'); 
$root = $dom->createElement('MyRoot','Hello'); 
$root->setAttributeNS(
    'http://www.w3.org/2000/xmlns/','xmlns:xlink','http://www.w3.org/1999/xlink' 
); 
$dom->appendChild($root); 

echo($dom->saveXML()); 

輸出:

<?xml version="1.0" encoding="utf-8"?> 
<MyRoot xmlns:xlink="http://www.w3.org/1999/xlink">Hello</MyRoot> 
0

設置XMLNS命名空間,那麼xmlns:xlink屬性名稱,然後將要設置......這是XLink的URL屬性的值。

$dom = new DOMDocument('1.0', 'utf-8'); 
$root = $dom->createElement('MyRoot','Hello'); 
$root->setAttributeNS('http://www.w3.org/2000/xmlns/','xmlns:xlink','http://www.w3.org/1999/xlink'); 
$dom->appendChild($root); 
die($dom->saveXML()); 

<?xml version="1.0" encoding="utf-8"?> 
<MyRoot xmlns:xlink="http://www.w3.org/1999/xlink">Hello</MyRoot> 
+0

你好,謝謝!但是第一個(問題投票),ThW還是你? – 2014-10-27 18:54:31

+0

看起來像@ThW在'2014-10-27 18:34:08Z'提交,我在'2014-10-27 18:34:13Z'提交。該遊戲在5秒內擊敗了我。 – slapyo 2014-10-27 18:56:39

+0

那麼...有一個新的好問題相關,http://stackoverflow.com/q/26593430/287948 – 2014-10-27 19:17:19

相關問題