<?php dl('xmlwriter.so'); $xw = xmlwriter_open_memory(); xmlwriter_set_indent($xw, 1); $res = xmlwriter_set_indent_string($xw, ' '); xmlwriter_start_document($xw, '1.0', 'UTF-8'); // A first element xmlwriter_start_element_ns($xw, 'prefix', 'books', 'uri'); xmlwriter_start_attribute($xw, 'isbn'); /* Uncomment this line if you have libxml 2.6.17 or CVS version after 2005/02/22 earlier versions segfault */ /* xmlwriter_start_attribute_ns($xw, 'prefix', 'isbn', 'uri'); xmlwriter_end_attribute($xw); */ xmlwriter_end_attribute($xw); xmlwriter_text($xw, 'book1'); xmlwriter_end_element($xw); xmlwriter_end_document($xw); $out = xmlwriter_output_memory($xw, 0); echo $out;
<?php $w = xmlwriter_open_memory("writer.xml"); xmlwriter_set_indent($w, true); // verbose version xmlwriter_start_element_ns($w, "dc", "subject", "http://purl.org/dc/elements/1.1/"); xmlwriter_text($w, "Verbose"); xmlwriter_end_element($w); // simpler version xmlwriter_write_element_ns($w, "dc", "subject", "http://purl.org/dc/elements/1.1/", "Simple"); echo '<pre>' . htmlentities(xmlwriter_output_memory($w)) . '</pre>';
/** * @brief Generate an RSS feed * @param string $link * @param string $content */ public static function generaterss($link, $content) { $writer = xmlwriter_open_memory(); xmlwriter_set_indent($writer, 4); xmlwriter_start_document($writer, '1.0', 'utf-8'); xmlwriter_start_element($writer, 'rss'); xmlwriter_write_attribute($writer, 'version', '2.0'); xmlwriter_write_attribute($writer, 'xmlns:atom', 'http://www.w3.org/2005/Atom'); xmlwriter_start_element($writer, 'channel'); xmlwriter_write_element($writer, 'title', 'my ownCloud'); xmlwriter_write_element($writer, 'language', 'en-us'); xmlwriter_write_element($writer, 'link', $link); xmlwriter_write_element($writer, 'description', 'A personal ownCloud activities'); xmlwriter_write_element($writer, 'pubDate', date('r')); xmlwriter_write_element($writer, 'lastBuildDate', date('r')); xmlwriter_start_element($writer, 'atom:link'); xmlwriter_write_attribute($writer, 'href', $link); xmlwriter_write_attribute($writer, 'rel', 'self'); xmlwriter_write_attribute($writer, 'type', 'application/rss+xml'); xmlwriter_end_element($writer); // items for ($i = 0; $i < count($content); $i++) { xmlwriter_start_element($writer, 'item'); if (isset($content[$i]['subject'])) { xmlwriter_write_element($writer, 'title', $content[$i]['subject']); } if (isset($content[$i]['link'])) { xmlwriter_write_element($writer, 'link', $content[$i]['link']); } if (isset($content[$i]['link'])) { xmlwriter_write_element($writer, 'guid', $content[$i]['link']); } if (isset($content[$i]['timestamp'])) { xmlwriter_write_element($writer, 'pubDate', date('r', $content[$i]['timestamp'])); } if (isset($content[$i]['message'])) { xmlwriter_start_element($writer, 'description'); xmlwriter_start_cdata($writer); xmlwriter_text($writer, $content[$i]['message']); xmlwriter_end_cdata($writer); xmlwriter_end_element($writer); } xmlwriter_end_element($writer); } xmlwriter_end_element($writer); xmlwriter_end_element($writer); xmlwriter_end_document($writer); $entry = xmlwriter_output_memory($writer); unset($writer); return $entry; }
<?php dl('xmlwriter.so'); $xw = xmlwriter_open_memory(); xmlwriter_set_indent($xw, 1); $res = xmlwriter_set_indent_string($xw, ' '); xmlwriter_start_document($xw, '1.0', 'UTF-8'); // A first element xmlwriter_start_element($xw, 'tag1'); // Attribute 'att1' for element 'tag1' xmlwriter_start_attribute($xw, 'att1'); xmlwriter_text($xw, 'valueofatt1'); xmlwriter_end_attribute($xw); xmlwriter_text($xw, utf8_encode('This is a sample text, ä')); xmlwriter_end_element($xw); // tag1 $res = xmlwriter_start_comment($xw); xmlwriter_text($xw, "Demo text comment"); $res = xmlwriter_end_comment($xw); xmlwriter_end_document($xw); $out = xmlwriter_output_memory($xw, 0); echo $out; // flush the xml buffer using optional // flust argument, default is 1 $out = xmlwriter_output_memory($xw, 1); echo $out; $out = xmlwriter_output_memory($xw); echo $out;
<?php $xw = xmlwriter_open_uri('./a.xml'); xmlwriter_set_indent($xw, 1); $res = xmlwriter_set_indent_string($xw, ' '); xmlwriter_start_document($xw, '1.0', 'utf8'); // A first element xmlwriter_start_element($xw, 'tag1'); // Attribute 'att1' for element 'tag1' xmlwriter_start_attribute($xw, 'att1'); xmlwriter_text($xw, 'valueofatt1'); xmlwriter_end_attribute($xw); xmlwriter_write_comment($xw, 'this is a comment.'); // Start a child element xmlwriter_start_element($xw, 'tag11'); xmlwriter_text($xw, utf8_encode('This is a sample text, ä')); xmlwriter_end_element($xw); // tag11 xmlwriter_end_element($xw); // tag1 // partial example
<?php // begin a new memory based XML document $w = xmlwriter_open_memory(); // set indenting (makes output readable) xmlwriter_set_indent($w, TRUE); xmlwriter_start_document($w); // start document xmlwriter_start_element($w, "test"); // start <test> xmlwriter_start_element($w, "example"); // start node <example> xmlwriter_write_attribute($w, "id", 1); // add attribute to example xmlwriter_start_element($w, "data"); // add node <data> xmlwriter_text($w, "Some text"); // add content to node xmlwriter_end_element($w); // close node // close all open nodes xmlwriter_end_element($w); xmlwriter_end_element($w); // end document xmlwriter_end_document($w); // output generated XML echo '<pre>' . htmlentities(xmlwriter_output_memory($w)) . '</pre>';
<?php /* $Id$ */ $doc_dest = '001.xml'; $xw = xmlwriter_open_uri($doc_dest); xmlwriter_start_document($xw, '1.0', 'UTF-8'); xmlwriter_start_element($xw, "tag1"); xmlwriter_start_comment($xw); xmlwriter_text($xw, 'comment'); xmlwriter_end_comment($xw); xmlwriter_write_comment($xw, "comment #2"); xmlwriter_end_document($xw); // Force to write and empty the buffer $output_bytes = xmlwriter_flush($xw, true); echo file_get_contents($doc_dest); unset($xw); unlink('001.xml'); ?> ===DONE===
<?php // use xmlwriter_open_uri() for direct file writes $w = xmlwriter_open_memory(); xmlwriter_set_indent($w, TRUE); xmlwriter_start_element($w, "source"); xmlwriter_start_element($w, "php"); // add raw data via CDATA xmlwriter_start_cdata($w); xmlwriter_text($w, "<?php phpinfo(); ?>"); xmlwriter_end_cdata($w); xmlwriter_end_element($w); xmlwriter_end_element($w); echo '<pre>' . htmlentities(xmlwriter_output_memory($w)) . '</pre>';
<?php /* $Id$ */ $doc_dest = '001.xml'; $xw = xmlwriter_open_memory($doc_dest); xmlwriter_start_document($xw, '1.0', 'UTF-8'); xmlwriter_start_element($xw, "tag1"); $res = xmlwriter_start_attribute($xw, 'attr1'); xmlwriter_text($xw, "attr1_value"); xmlwriter_end_attribute($xw); xmlwriter_write_attribute($xw, "att2", "att2_value"); xmlwriter_text($xw, "Test text for tag1"); $res = xmlwriter_start_element($xw, 'tag2'); if ($res < 1) { echo "StartElement context validation failed\n"; exit; } xmlwriter_end_document($xw); // Force to write and empty the buffer echo xmlwriter_flush($xw, true); ?> ===DONE===
xmlwriter_start_document($xw, '1.0', 'UTF-8'); // A first element xmlwriter_start_element($xw, 'tag1'); // Attribute 'att1' for element 'tag1' xmlwriter_start_attribute($xw, 'att1'); xmlwriter_text($xw, 'valueofatt1'); xmlwriter_end_attribute($xw); xmlwriter_write_comment($xw, 'this is a comment.'); // Start a child element xmlwriter_start_element($xw, 'tag11'); xmlwriter_text($xw, utf8_encode('This is a sample text, ä')); xmlwriter_end_element($xw); // tag11 xmlwriter_end_element($xw); // tag1 // CDATA xmlwriter_start_element($xw, 'testc'); xmlwriter_write_cdata($xw, "This is a cdata content"); xmlwriter_end_element($xw); // testctag xmlwriter_start_element($xw, 'testc'); xmlwriter_start_cdata($xw); xmlwriter_text($xw, "test cdata2"); xmlwriter_end_cdata($xw); xmlwriter_end_element($xw); // testctag // A processing instruction xmlwriter_start_pi($xw, 'php'); xmlwriter_text($xw, '$foo=2;echo $foo;'); xmlwriter_end_pi($xw); xmlwriter_end_document($xw);
/** * Sets out TxnDetails * * @param Array $params Parameterrs need to create element * @return String $xml Resulting TxnDetails element in XML format. */ private function _handleTxnDetails($params = array()) { if (empty($params)) { throw new Zend_Exception('TxnDetails parameters must be set'); } if (!array_key_exists('merchantreference', $params) || !array_key_exists('amount', $params)) { throw new Zend_Exception('Must supply merchant reference & amount'); } $xml = xmlwriter_open_memory(); xmlwriter_start_element($xml, 'TxnDetails'); xmlwriter_write_element($xml, 'merchantreference', $params['merchantreference']); xmlwriter_start_element($xml, 'amount'); if (array_key_exists('currency', $params)) { xmlwriter_write_attribute($xml, 'currency', $params['currency']); } else { xmlwriter_write_attribute($xml, 'currency', 'GBP'); } xmlwriter_text($xml, $params['amount']); xmlwriter_end_element($xml); $threeDSecure = $this->_handleThreeDSecure(); xmlwriter_write_raw($xml, $threeDSecure); xmlwriter_end_element($xml); return xmlwriter_output_memory($xml, true); }
<?php /* $Id$ */ $xw = xmlwriter_open_memory(); xmlwriter_set_indent($xw, TRUE); xmlwriter_start_document($xw, NULL, "UTF-8"); xmlwriter_start_dtd_entity($xw, "ent", false); xmlwriter_text($xw, "val"); xmlwriter_end_dtd_entity($xw); xmlwriter_write_dtd_entity($xw, "ent2", "val2"); xmlwriter_write_dtd_element($xw, 'sxe', '(elem1+, elem11, elem22*)'); xmlwriter_write_dtd_attlist($xw, 'sxe', 'id CDATA #implied'); xmlwriter_start_dtd_element($xw, 'elem1'); xmlwriter_text($xw, 'elem2*'); xmlwriter_end_dtd_element($xw); xmlwriter_start_dtd_attlist($xw, 'elem1'); xmlwriter_text($xw, "attr1 CDATA #required\n"); xmlwriter_text($xw, 'attr2 CDATA #implied'); xmlwriter_end_dtd_attlist($xw); xmlwriter_end_document($xw); // Force to write and empty the buffer $output = xmlwriter_flush($xw, true); print $output;
<?php /* $Id$ */ $doc_dest = '001.xml'; $xw = xmlwriter_open_uri($doc_dest); xmlwriter_start_document($xw, '1.0', 'UTF-8'); xmlwriter_start_element($xw, "tag1"); xmlwriter_start_pi($xw, "PHP"); xmlwriter_text($xw, 'echo $a;'); xmlwriter_end_pi($xw); xmlwriter_end_document($xw); // Force to write and empty the buffer $output_bytes = xmlwriter_flush($xw, true); $md5_out = md5_file($doc_dest); $md5_res = md5('<?xml version="1.0" encoding="UTF-8"?> <tag1><?PHP echo $a;?></tag1> '); unset($xw); unlink('001.xml'); if ($md5_out != $md5_res) { echo "failed: {$md5_res} != {$md5_out}\n"; } else { echo "ok.\n"; } ?> ===DONE===
VERIFY(xmlwriter_start_attribute_ns($xml, "fb", "attr2", "http://www.facebook.com/")); VERIFY(xmlwriter_end_attribute($xml)); VERIFY(xmlwriter_write_element_ns($xml, "prefix", "name", "http://some.url/", 1337)); VERIFY(xmlwriter_start_element($xml, "node")); VERIFY(xmlwriter_full_end_element($xml)); VERIFY(xmlwriter_end_element($xml)); VERIFY(xmlwriter_start_element($xml, "node")); VERIFY(xmlwriter_start_cdata($xml)); VERIFY(xmlwriter_text($xml, "Raw text")); VERIFY(xmlwriter_end_cdata($xml)); VERIFY(xmlwriter_end_element($xml)); VERIFY(xmlwriter_start_element($xml, "node")); VERIFY(xmlwriter_write_cdata($xml, "More CDATA")); VERIFY(xmlwriter_end_element($xml)); VERIFY(xmlwriter_start_comment($xml)); VERIFY(xmlwriter_text($xml, "Comments")); VERIFY(xmlwriter_end_comment($xml)); VERIFY(xmlwriter_write_comment($xml, "More comments")); VERIFY(xmlwriter_start_pi($xml, "lol")); VERIFY(xmlwriter_end_pi($xml)); VERIFY(xmlwriter_write_pi($xml, "php", "print 'Hello world!';")); VERIFY(xmlwriter_write_raw($xml, "<node>Raw XML</node>")); VERIFY(xmlwriter_write_dtd($xml, "name", "publicID", "systemID", "subset")); VERIFY(xmlwriter_start_dtd($xml, "name", "publicID", "systemID")); VERIFY(xmlwriter_end_dtd($xml)); VERIFY(xmlwriter_start_dtd_element($xml, "name")); VERIFY(xmlwriter_end_dtd_element($xml)); VERIFY(xmlwriter_write_dtd_element($xml, "name", "content")); VERIFY(xmlwriter_start_dtd_attlist($xml, "name")); VERIFY(xmlwriter_end_dtd_attlist($xml)); VERIFY(xmlwriter_write_dtd_attlist($xml, "name", "content"));
/** * Render a PHP array to xmlwriter memory. Works with the XSD definition. * * @param $xml_memory the xmlwriter memory to use (created with xmlwriter_open_memory()) * @param $name the name of the array * @param $object the array to render * @param $attrs optional assoc array of attributes (name=>value) */ function api_xml2_render_object($xml_memory, $name, $object, $attrs = array()) { xmlwriter_start_element($xml_memory, $name); foreach ($attrs as $k => $v) { xmlwriter_write_attribute($xml_memory, $k, $v); } if ($object instanceof FQLCantSee) { xmlwriter_write_attribute($xml_memory, 'xsi:nil', 'true'); } else { if (is_array($object)) { xmlwriter_write_attribute($xml_memory, 'list', 'true'); if (!empty($object)) { foreach ($object as $k => $v) { if (isset($GLOBALS['api_10_xsd_elt_' . $name])) { $v_name = $GLOBALS['api_10_xsd_elt_' . $name]; } else { $v_name = $name . '_elt'; } api_xml2_render_object($xml_memory, $v_name, $v); } } } else { if (is_object($object)) { foreach ($object as $k => $v) { if (isset($v)) { api_xml2_render_object($xml_memory, $k, $v); } } } else { if (is_bool($object) && !$object) { xmlwriter_text($xml_memory, 0); } else { if (isset($object) && $object !== '') { xmlwriter_text($xml_memory, api_xml_strip_bad_utf8($object)); } } } } } xmlwriter_end_element($xml_memory); }
<?php /* $Id$ */ /* Libxml 2.6.24 and up adds a new line after a processing instruction (PI) */ $xw = xmlwriter_open_memory(); xmlwriter_set_indent($xw, TRUE); xmlwriter_start_document($xw, NULL, "UTF-8"); xmlwriter_start_element($xw, 'root'); xmlwriter_write_attribute($xw, 'id', 'elem1'); xmlwriter_start_element($xw, 'elem1'); xmlwriter_write_attribute($xw, 'attr1', 'first'); xmlwriter_write_comment($xw, 'start PI'); xmlwriter_start_element($xw, 'pi'); xmlwriter_write_pi($xw, 'php', 'echo "hello world"; '); xmlwriter_end_element($xw); xmlwriter_start_element($xw, 'cdata'); xmlwriter_start_cdata($xw); xmlwriter_text($xw, '<>&"'); xmlwriter_end_cdata($xw); xmlwriter_end_element($xw); xmlwriter_end_element($xw); xmlwriter_end_element($xw); xmlwriter_end_document($xw); // Force to write and empty the buffer $output = xmlwriter_flush($xw, true); print $output;