Core PHP

Creating an XML Document

The program below demonstrates how to make an XML document using Simple XML. First, we call xmlwriter_open_memory() to initialize the XML memory. Next, we call xmlwriter_set_indent() to set the indent spacing for display. Then we set the string used for indenting the document by calling xmlwriter_set_indent_string(). Finally, a call to xmlwriter_start_document() sets the header type for the XML document.

For each tag, we call xmlwriter_start_element() for the beginning tag and xmlwriter_end_element() for the ending tag. The tags work like a stack. So, we can insert attributes inside of a tag by calling xmlwriter_start_attribute() to start the attribute, xmlwriter_end_attribute() to end the attribute, and calling xmlwriter_text() between them with the value as the second argument to set the attributes value. We can also create child tag nodes by calling the start and end functions for a tag between the start and end of the parent. To set a text value for a tag, we can call xmlwriter_text(), internally.

At the end, we make a few function calls to finish the document. The call to xmlwriter_end_document() ends the documment. Calling xmlwriter_output_memory() gets the output string in a variable. Calling header() sets the header for the whole document that is generated by the web server. Finally, echo is used to output the document that was generated previously.

CreateXmlDoc.php

<?php

$qXmlWriter = xmlwriter_open_memory();
xmlwriter_set_indent($qXmlWriter, 1);
$res = xmlwriter_set_indent_string($qXmlWriter, ' ');

xmlwriter_start_document($qXmlWriter, '1.0', 'UTF-8');

// The first enclosing element
xmlwriter_start_element($qXmlWriter, 'apostles');

// Attribute 'count' for element 'apostles'
xmlwriter_start_attribute($qXmlWriter, 'count');
xmlwriter_text($qXmlWriter, '12');
xmlwriter_end_attribute($qXmlWriter);

// Make the child 'apostle' elements
xmlwriter_start_element($qXmlWriter, 'apostle');
xmlwriter_start_attribute($qXmlWriter, 'alias');
xmlwriter_text($qXmlWriter, 'Peter');
xmlwriter_end_attribute($qXmlWriter);
xmlwriter_start_attribute($qXmlWriter, 'name');
xmlwriter_text($qXmlWriter, 'Simon');
xmlwriter_end_attribute($qXmlWriter);
xmlwriter_start_element($qXmlWriter, 'brother');
xmlwriter_text($qXmlWriter, 'Andrew');
xmlwriter_end_element($qXmlWriter); // brother
xmlwriter_start_element($qXmlWriter, 'death');
xmlwriter_text($qXmlWriter, 'Crucified upside-down');
xmlwriter_end_element($qXmlWriter); // death
xmlwriter_end_element($qXmlWriter); // apostle

xmlwriter_start_element($qXmlWriter, 'apostle');
xmlwriter_start_attribute($qXmlWriter, 'name');
xmlwriter_text($qXmlWriter, 'James');
xmlwriter_end_attribute($qXmlWriter);
xmlwriter_start_attribute($qXmlWriter, 'title');
xmlwriter_text($qXmlWriter, 'The Greater');
xmlwriter_end_attribute($qXmlWriter);
xmlwriter_start_element($qXmlWriter, 'brother');
xmlwriter_text($qXmlWriter, 'John');
xmlwriter_end_element($qXmlWriter); // brother
xmlwriter_start_element($qXmlWriter, 'death');
xmlwriter_text($qXmlWriter, 'First Martyr');
xmlwriter_end_element($qXmlWriter); // death
xmlwriter_end_element($qXmlWriter); // apostle

xmlwriter_start_element($qXmlWriter, 'apostle');
xmlwriter_start_attribute($qXmlWriter, 'name');
xmlwriter_text($qXmlWriter, 'John');
xmlwriter_end_attribute($qXmlWriter);
xmlwriter_start_element($qXmlWriter, 'brother');
xmlwriter_text($qXmlWriter, 'James');
xmlwriter_end_element($qXmlWriter); // brother
xmlwriter_start_element($qXmlWriter, 'death');
xmlwriter_text($qXmlWriter, 'Natural causes');
xmlwriter_end_element($qXmlWriter); // death
xmlwriter_end_element($qXmlWriter); // apostle

xmlwriter_start_element($qXmlWriter, 'apostle');
xmlwriter_start_attribute($qXmlWriter, 'name');
xmlwriter_text($qXmlWriter, 'Andrew');
xmlwriter_end_attribute($qXmlWriter);
xmlwriter_start_element($qXmlWriter, 'brother');
xmlwriter_text($qXmlWriter, 'Peter');
xmlwriter_end_element($qXmlWriter); // brother
xmlwriter_start_element($qXmlWriter, 'death');
xmlwriter_text($qXmlWriter, 'Crucified on an X-shaped cross');
xmlwriter_end_element($qXmlWriter); // death
xmlwriter_end_element($qXmlWriter); // apostle

xmlwriter_start_element($qXmlWriter, 'apostle');
xmlwriter_start_attribute($qXmlWriter, 'name');
xmlwriter_text($qXmlWriter, 'Bartholomew');
xmlwriter_end_attribute($qXmlWriter);
xmlwriter_start_attribute($qXmlWriter, 'alias');
xmlwriter_text($qXmlWriter, 'Nathanael');
xmlwriter_end_attribute($qXmlWriter);
xmlwriter_start_element($qXmlWriter, 'reference');
xmlwriter_text($qXmlWriter, 'John 1:45-50');
xmlwriter_end_element($qXmlWriter); // reference
xmlwriter_start_element($qXmlWriter, 'death');
xmlwriter_text($qXmlWriter, 'Flayed alive');
xmlwriter_end_element($qXmlWriter); // death
xmlwriter_end_element($qXmlWriter); // apostle

xmlwriter_start_element($qXmlWriter, 'apostle');
xmlwriter_start_attribute($qXmlWriter, 'name');
xmlwriter_text($qXmlWriter, 'James');
xmlwriter_end_attribute($qXmlWriter);
xmlwriter_start_attribute($qXmlWriter, 'title');
xmlwriter_text($qXmlWriter, 'The Lesser');
xmlwriter_end_attribute($qXmlWriter);
xmlwriter_start_element($qXmlWriter, 'brother');
xmlwriter_text($qXmlWriter, 'Jude');
xmlwriter_end_element($qXmlWriter); // brother
xmlwriter_start_element($qXmlWriter, 'death');
xmlwriter_text($qXmlWriter, 'Sawed into pieces');
xmlwriter_end_element($qXmlWriter); // death
xmlwriter_end_element($qXmlWriter); // apostle

xmlwriter_start_element($qXmlWriter, 'apostle');
xmlwriter_start_attribute($qXmlWriter, 'name');
xmlwriter_text($qXmlWriter, 'Judas');
xmlwriter_end_attribute($qXmlWriter);
xmlwriter_start_attribute($qXmlWriter, 'title');
xmlwriter_text($qXmlWriter, 'Iscariot');
xmlwriter_end_attribute($qXmlWriter);
xmlwriter_start_element($qXmlWriter, 'death');
xmlwriter_text($qXmlWriter, 'Hanged himself');
xmlwriter_end_element($qXmlWriter); // death
xmlwriter_end_element($qXmlWriter); // apostle

xmlwriter_start_element($qXmlWriter, 'apostle');
xmlwriter_start_attribute($qXmlWriter, 'name');
xmlwriter_text($qXmlWriter, 'Jude');
xmlwriter_end_attribute($qXmlWriter);
xmlwriter_start_attribute($qXmlWriter, 'alias');
xmlwriter_text($qXmlWriter, 'Thaddaeus');
xmlwriter_end_attribute($qXmlWriter);
xmlwriter_start_attribute($qXmlWriter, 'alias2');
xmlwriter_text($qXmlWriter, 'Lebbeus');
xmlwriter_end_attribute($qXmlWriter);
xmlwriter_start_element($qXmlWriter, 'brother');
xmlwriter_text($qXmlWriter, 'James');
xmlwriter_end_element($qXmlWriter); // brother
xmlwriter_start_element($qXmlWriter, 'death');
xmlwriter_text($qXmlWriter, 'Shot with arrows');
xmlwriter_end_element($qXmlWriter); // death
xmlwriter_end_element($qXmlWriter); // apostle

xmlwriter_start_element($qXmlWriter, 'apostle');
xmlwriter_start_attribute($qXmlWriter, 'name');
xmlwriter_text($qXmlWriter, 'Matthew');
xmlwriter_end_attribute($qXmlWriter);
xmlwriter_start_attribute($qXmlWriter, 'alias');
xmlwriter_text($qXmlWriter, 'Levi');
xmlwriter_end_attribute($qXmlWriter);
xmlwriter_start_element($qXmlWriter, 'death');
xmlwriter_text($qXmlWriter, 'Martyred in Ethiopia');
xmlwriter_end_element($qXmlWriter); // death
xmlwriter_end_element($qXmlWriter); // apostle

xmlwriter_start_element($qXmlWriter, 'apostle');
xmlwriter_start_attribute($qXmlWriter, 'name');
xmlwriter_text($qXmlWriter, 'Philip');
xmlwriter_end_attribute($qXmlWriter);
xmlwriter_start_element($qXmlWriter, 'death');
xmlwriter_text($qXmlWriter, 'Hung');
xmlwriter_end_element($qXmlWriter); // death
xmlwriter_end_element($qXmlWriter); // apostle

xmlwriter_start_element($qXmlWriter, 'apostle');
xmlwriter_start_attribute($qXmlWriter, 'name');
xmlwriter_text($qXmlWriter, 'Simon');
xmlwriter_end_attribute($qXmlWriter);
xmlwriter_start_attribute($qXmlWriter, 'title');
xmlwriter_text($qXmlWriter, 'The Zealot');
xmlwriter_end_attribute($qXmlWriter);
xmlwriter_start_element($qXmlWriter, 'death');
xmlwriter_text($qXmlWriter, 'Martyred');
xmlwriter_end_element($qXmlWriter); // death
xmlwriter_end_element($qXmlWriter); // apostle

xmlwriter_start_element($qXmlWriter, 'apostle');
xmlwriter_start_attribute($qXmlWriter, 'name');
xmlwriter_text($qXmlWriter, 'Thomas');
xmlwriter_end_attribute($qXmlWriter);
xmlwriter_start_attribute($qXmlWriter, 'alias');
xmlwriter_text($qXmlWriter, 'Didymus');
xmlwriter_end_attribute($qXmlWriter);
xmlwriter_start_element($qXmlWriter, 'death');
xmlwriter_text($qXmlWriter, 'Spear');
xmlwriter_end_element($qXmlWriter); // death
xmlwriter_end_element($qXmlWriter); // apostle

xmlwriter_end_element($qXmlWriter); // apostles


xmlwriter_end_document($qXmlWriter);

$sDoc = xmlwriter_output_memory($qXmlWriter);
header("Content-type: text/xml");


echo $sDoc;

?>
 

Output



 
 
 

© 2007–2024 XoaX.net LLC. All rights reserved.