Слияние XML в PHP - PullRequest
       10

Слияние XML в PHP

3 голосов
/ 02 июня 2011

Что-то здесь не так, кажется, что я не могу объединить XML DOMDocumet. Я получаю ошибку "Неустранимая ошибка: вызов неопределенного метода DOMElement :: importNode () в C: \ xampp \ htdocs \ xmltest \ xmltest.php on line27 "Кто-нибудь может мне помочь поставить этот код правильно ...

<?php
// include required files
include 'XML/Query2XML.php';
include 'MDB2.php';

// prepare xml document
$dom = new DomDocument('1.0');

// create tables section
$tables = $dom->appendChild($dom->createElement('tables')); 

// create container for tblclients
$tblclients = $tables->appendChild($dom->createElement('tblclients')); 

try {
// initialize Query2XML object
$q2x = XML_Query2XML::factory(MDB2::factory('mysql://root:@localhost/db_solconmgr'));

// generate SQL query
$sql = "SELECT ClientID, Client, Contacts, 'Address Line 1' as AddressLine1, 'Address Line 2' as AddressLine2, City, County, 'Zip Code' as ZipCode, Telephone, Fax, Mobile, 'E-mail Address' as EmailAddress, Date FROM tblclients";

// get results as XML
$tblclientsXML = $q2x->getFlatXML($sql);

//$dom = $tblclientsXML;

$node = $tblclients->importNode($tblclientsXML, true);

// send output to browser
header('Content-Type: text/xml');
$dom->formatOutput = true;
echo $dom->saveXML();
} catch (Exception $e) {
echo $e->getMessage();
}
?>

1 Ответ

4 голосов
/ 02 июня 2011

importNode() - это метод, принадлежащий документу, а не элемент.Вы хотите импортировать в документ ($dom), а затем добавить к элемент ($tblclients).

Узел необходим при импорте (а $tblclientsXML не является узлом, это документ), поэтому импорт сгенерированного XML будет выглядеть аналогично :

$tblclientsElement = $tblclientsXML->documentElement;
$tblclientsXML = $dom->importNode($tblclientsElement, TRUE);
$tblclients->appendChild($tblclientsXML);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...