示例#1
0
<?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;
示例#2
0
<?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>';
示例#3
0
文件: data.php 项目: hjimmy/owncloud
 /**
  * @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;
 }
示例#4
0
<?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;
示例#5
0
<?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
示例#6
0
<?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===
示例#8
0
<?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>';
示例#9
0
文件: 003.php 项目: badlamer/hhvm
<?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===
示例#10
0
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);
示例#11
0
 /**
  * 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);
 }
示例#12
0
文件: 008.php 项目: badlamer/hhvm
<?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===
示例#14
0
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"));
示例#15
0
/**
 * 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);
}
示例#16
0
文件: 009.php 项目: badlamer/hhvm
<?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;