PHP DOM XML - Erstellen Sie Mehrere Namespace-Attribute?

Arbeite ich auf einigen PHP erstellen, XML aus einer Datenbank mit der DOM-Erweiterung.

Grundsätzlich, ich brauche, um einen NameSpace erstellen, und fügen Sie 3 Attribute zu:

<NameSpaceName xmlns="uri:xxx"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="uri:xxx">

Den vollständigen code, den ich geschrieben habe ist unter:

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;

Aber wenn ich führen Sie die oben bekomme ich diesen Fehler:

Fatal error: Uncaught exception
'DOMException' with message ' - Namespace
Fehler' in
xml.php:21
Stack trace: #0
xml.php(21):
DOMElement->setAttributeNS('http://www.w3.o...', 'xsi:schemaLocat...',
'uri:xxx...') #1 {main} geworfen
in
xml.php
auf der Linie 21

Zeile 21 ist die zweite 'setAttributeNS" Linie.

Kann jeder sehen, wohin ich gehe falsch gemacht?

InformationsquelleAutor Sjwdavies | 2010-02-10
Schreibe einen Kommentar