Я работаю над некоторым PHP для создания XML из базы данных, используя расширение DOM.
По сути, мне нужно создать NameSpace и добавить к нему 3 атрибута:
<NameSpaceName xmlns="uri:xxx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="uri:xxx">
Полный код, который я написал ниже:
include_once("includes/connect.php");
$sql = ("SELECT * FROM tableName");
$query = mysql_query($sql) or die("Error: " . mysql_error());
// create a new XML document
$doc = new DomDocument('1.0', 'UTF-8');
// create root node
$root = $doc->createElementNS('uri:xxx', 'PayerRecords');
$root = $doc->appendChild($root);
$root->setAttributeNS('http://www.w3.org/2000/xmlns/' ,'xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
$root->setAttributeNS('http://www.w3.org/2000/xmlns/' ,'xsi:schemaLocation', 'uri:xxx');
// process one row at a time
while($row = mysql_fetch_assoc($query)) {
// add node for each row
$occ = $doc->createElement('Content');
$occ = $root->appendChild($occ);
// add a child node for each field
foreach ($row as $fieldname => $fieldvalue) {
$child = $doc->createElement($fieldname);
$child = $occ->appendChild($child);
$value = $doc->createTextNode($fieldvalue);
$value = $child->appendChild($value);
} // foreach
} // while
// get completed xml document
$xml_string = $doc->saveXML();
echo $xml_string;
Но когда я выполняю вышеупомянутое, я получаю эту ошибку:
Неустранимая ошибка: необработанное исключение
«DOMException» с сообщением «Пространство имен
Ошибка в
xml.php: 21
Трассировка стека: # 0
xml.php (21):
DOMElement-> setAttributeNS ('http://www.w3.o...',' xsi: schemaLocat ... ',
'uri: xxx ...') # 1 {main} брошено
в
xml.php
по линии 21
Строка 21 - это вторая строка 'setAttributeNS'.
Кто-нибудь может увидеть, где я иду не так?