2014-10-27 3 views
1

Ошибка «Uncaught исключения„DOMException“с сообщением" Ошибка пространства имен»вКак установить декларацию пространства имен (xmlns) в корневом теге с помощью «чистого DOM»?

$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). –

ответ

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 или вы? –

+0

Похож на @ThW, представленный на '2014-10-27 18: 34: 08Z', и я отправил на' 2014-10-27 18: 34: 13Z'. ThW избил меня на 5 секунд. – slapyo

+0

Ну ... есть новый хороший вопрос, связанный, http://stackoverflow.com/q/26593430/287948 –

 Смежные вопросы

  • Нет связанных вопросов^_^