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.
<?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; ?>
© 20072024 XoaX.net LLC. All rights reserved.