इसे DOM के साथ करने का तरीका यहां दिया गया है :
function createUserDetailsXml(array $result) {
$dom = new DOMDocument;
$dom->formatOutput = TRUE; // enable automatic indenting
$dom->loadXML('<users/>'); // set root node
foreach($result as $row) {
// create user-details node
$user = $dom->createElement('user-details');
// create and append details to user-details node
$user->appendChild(
$dom->createElement('user-id', $row['uid']));
$user->appendChild(
$dom->createElement('user-name', $row['userName']));
$user->appendChild(
$dom->createElement('user-points', $row['points']));
$user->appendChild(
$dom->createElement('image-url', $row['imageURL']));
$user->appendChild(
$dom->createElement('thumb-url', $row['thumbURL']));
// add user-details node to XML document, e.g. users node
$dom->documentElement->appendChild($user);
};
return $dom->saveXML(); // returns the formatted XML
};
ध्यान दें कि फ़ंक्शन आपसे पूर्ण परिणाम सरणी में उत्तीर्ण होने की अपेक्षा करता है, इसलिए मैं इसका परीक्षण कर सकता हूं:
$result = array(
array(
'uid' => 1,
'userName' => 'Gordon',
'points' => PHP_INT_MAX,
'imageURL' => 'http://example.com/gordon.jpg',
'thumbURL' => 'http://example.com/t_gordon.jpg'
),
array(
'uid' => 2,
'userName' => 'John <blink>"Frigging"</blink> Doe',
'points' => 0,
'imageURL' => 'http://example.com/johndoe.jpg',
'thumbURL' => 'http://example.com/t_johndoe.jpg'
)
);
echo createUserDetailsXml($result);
फिर फ़ंक्शन वापस आ जाएगा
<?xml version="1.0"?>
<users>
<user-details>
<user-id>1</user-id>
<user-name>Gordon</user-name>
<user-points>2147483647</user-points>
<image-url>http://example.com/gordon.jpg</image-url>
<thumb-url>http://example.com/t_gordon.jpg</thumb-url>
</user-details>
<user-details>
<user-id>2</user-id>
<user-name>John <blink>"Frigging"</blink> Doe</user-name>
<user-points>0</user-points>
<image-url>http://example.com/johndoe.jpg</image-url>
<thumb-url>http://example.com/t_johndoe.jpg</thumb-url>
</user-details>
</users>
कृपया ध्यान दें कि डीओएम स्वचालित रूप से आपके लिए जॉन डो के नाम में विशेष वर्णों से बच निकला है। डीओएम यह भी सुनिश्चित करेगा कि एक्सएमएल तत्व नाम (या यदि आप उनका उपयोग करते हैं तो गुण) वाक्य रचनात्मक रूप से मान्य हैं। इसमें एक्सएमएल प्रोलॉग भी जोड़ा गया है।