2015-11-03 28 views
0

我從數據庫中查詢檢索一組的聯繫人記錄產生循環XML,然後我需要生成返回給瀏覽器的XML響應。PHP - 使用DOM庫

PHP的循環,檢索的記錄是這樣的:

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();