2015-11-03 3 views
0

Я извлекаю набор записей контактов из запроса базы данных, а затем мне нужно сгенерировать ответ XML, который возвращается в браузер.PHP - Генерация XML в цикле с использованием библиотеки DOM

РНР цикл, который извлекает записи выглядит следующим образом:

foreach($contacts as $contact){ 

     $firstName = $record->getField('first') ; 
     $lastName = $record->getField('last') ; 


    $recnum++; } 

и XML мне нужно генерировать выглядит так:

<?xml version="1.0" encoding="utf-8"?> 
<contacts> 
    <contact> 
     <first_name>Penny</first_name> 
     <last_name>Lancaster</last_name> 
    </contact> 
    <contact> 
     <first_name>Geoff</first_name> 
     <last_name>McDermott</last_name> 
    </contact> 
</contacts> 

Я был в состоянии создать единый зашиты Ответ XML перед использованием:

$doc = new DOMDocument('1.0', 'utf-8'); 
$doc->formatOutput = true; 

$root = $doc->createElement('error'); 
$doc->appendChild($root); 

$desc = $doc->createElement('description', $error); 
$root->appendChild($desc); 

echo $doc->saveXML(); 

, но я не могу разобрать синтаксис, чтобы включить его в цикл и генерировать XML динамически.

+0

PHP и XML являются близкими друзьями. см. это: http://php.net/manual/en/book.xml.php –

ответ

0

Это довольно просто:

$doc = new DOMDocument('1.0', 'utf-8'); 
$doc->formatOutput = true; 
$contactsElement = $doc->createElement('contacts'); 

foreach($contacts as $contact){ 
    // your loop, is working? What is $record? 
    $firstName = $record->getField('first') ; 
    $lastName = $record->getField('last') ; 
    $recnum++; // is useful for something? 

    $contactElement = $doc->createElement('contact'); 
    $firstNameElement = $doc->createElement('first_name', $firstName); 
    $lastNameElement = $doc->createElement('last_name', $lastName); 

    $contactElement->appendChild($firstNameElement); 
    $contactElement->appendChild($lastNameElement); 
    $contactsElement->appendChild($contactElement); 
} 

echo $doc->saveXML(); 
Смежные вопросы