/** * create jasper config information used for input for executing the report * * @param string $report_source full path to the jrxml-report definition file * * @return array Array with referense to the config-file and report name */ protected static function _create_jasper_info($report_source) { $info = pathinfo($report_source); $base_name = basename($report_source, '.' . $info['extension']); $report_name = "report_{$base_name}"; $memory = xmlwriter_open_memory(); xmlwriter_start_document($memory, '1.0', 'UTF-8'); xmlwriter_start_element($memory, 'JasperConfig'); // <JasperConfig> xmlwriter_start_element($memory, 'Reports'); // <Reports> xmlwriter_start_element($memory, 'Report'); // <Report> xmlwriter_write_attribute($memory, 'name', $report_name); xmlwriter_write_attribute($memory, 'source', $report_source); xmlwriter_end_element($memory); // </Report> xmlwriter_end_element($memory); // </Reports> xmlwriter_end_element($memory); // </JasperConfig> $xml = xmlwriter_output_memory($memory, true); $jasper_info = array('config' => $GLOBALS['phpgw_info']['server']['temp_dir'] . '/' . uniqid('config_') . "{$base_name}.xml", 'report_name' => $report_name); $fp = fopen($jasper_info['config'], "wb"); fwrite($fp, $xml); if (!fclose($fp)) { throw new Exception('jasper_wrapper::create_jasper_config did not write any config file'); } return $jasper_info; }
function FirstContact() { global $db, $xmlout; $db->init_log(1); $time = localtime(time(), true); $VerifyID = $time['tm_min'] + $time['tm_sec']; $RecordID = $db->add_usage_record($VerifyID); $memory = xmlwriter_open_memory(); xmlwriter_start_document($memory, '1.0', 'UTF-8'); xmlwriter_write_dtd($memory, "AWB"); xmlwriter_start_element($memory, "DB"); xmlwriter_write_attribute($memory, "Record", $RecordID); xmlwriter_write_attribute($memory, "Verify", $VerifyID); xmlwriter_end_element($memory); $xmlout = xmlwriter_output_memory($memory, true); }
/** * @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; }
/** * generates the xml or json response for the API call from an multidimenional data array. * @param string $format * @param string $status * @param string $statuscode * @param string $message * @param array $data * @param string $tag * @param string $tagattribute * @param int $dimension * @param int $itemscount * @param int $itemsperpage * @return string xml/json */ private static function generateXml($format, $status, $statuscode, $message, $data = array(), $tag = '', $tagattribute = '', $dimension = -1, $itemscount = '', $itemsperpage = '') { if ($format == 'json') { $json = array(); $json['status'] = $status; $json['statuscode'] = $statuscode; $json['message'] = $message; $json['totalitems'] = $itemscount; $json['itemsperpage'] = $itemsperpage; $json['data'] = $data; return json_encode($json); } else { $txt = ''; $writer = xmlwriter_open_memory(); xmlwriter_set_indent($writer, 2); xmlwriter_start_document($writer); xmlwriter_start_element($writer, 'ocs'); xmlwriter_start_element($writer, 'meta'); xmlwriter_write_element($writer, 'status', $status); xmlwriter_write_element($writer, 'statuscode', $statuscode); xmlwriter_write_element($writer, 'message', $message); if ($itemscount != '') { xmlwriter_write_element($writer, 'totalitems', $itemscount); } if (!empty($itemsperpage)) { xmlwriter_write_element($writer, 'itemsperpage', $itemsperpage); } xmlwriter_end_element($writer); if ($dimension == '0') { // 0 dimensions xmlwriter_write_element($writer, 'data', $data); } elseif ($dimension == '1') { xmlwriter_start_element($writer, 'data'); foreach ($data as $key => $entry) { xmlwriter_write_element($writer, $key, $entry); } xmlwriter_end_element($writer); } elseif ($dimension == '2') { xmlwriter_start_element($writer, 'data'); foreach ($data as $entry) { xmlwriter_start_element($writer, $tag); if (!empty($tagattribute)) { xmlwriter_write_attribute($writer, 'details', $tagattribute); } foreach ($entry as $key => $value) { if (is_array($value)) { foreach ($value as $k => $v) { xmlwriter_write_element($writer, $k, $v); } } else { xmlwriter_write_element($writer, $key, $value); } } xmlwriter_end_element($writer); } xmlwriter_end_element($writer); } elseif ($dimension == '3') { xmlwriter_start_element($writer, 'data'); foreach ($data as $entrykey => $entry) { xmlwriter_start_element($writer, $tag); if (!empty($tagattribute)) { xmlwriter_write_attribute($writer, 'details', $tagattribute); } foreach ($entry as $key => $value) { if (is_array($value)) { xmlwriter_start_element($writer, $entrykey); foreach ($value as $k => $v) { xmlwriter_write_element($writer, $k, $v); } xmlwriter_end_element($writer); } else { xmlwriter_write_element($writer, $key, $value); } } xmlwriter_end_element($writer); } xmlwriter_end_element($writer); } elseif ($dimension == 'dynamic') { xmlwriter_start_element($writer, 'data'); OC_OCS::toxml($writer, $data, 'comment'); xmlwriter_end_element($writer); } xmlwriter_end_element($writer); xmlwriter_end_document($writer); $txt .= xmlwriter_output_memory($writer); unset($writer); return $txt; } }
/** * Write CDATA into element, escape unallowed character sequences "]]>" * @param string $cdata A string to write */ function xmlwriter_write_cdata($cdata) { $count = -1; $cdata = str_replace(']]>', $this->cdata_escape_sequence, $cdata, $count); if ($count > 0) { xmlwriter_write_attribute($this->xml, 'cdata_replaces_count', $count); xmlwriter_write_attribute($this->xml, 'cdata_replaced_from', ']]>'); xmlwriter_write_attribute($this->xml, 'cdata_replaced_to', $this->cdata_escape_sequence); } xmlwriter_write_cdata($this->xml, $cdata); }
protected function get_xmldata($id = 0, $current_value) { $this->db =& $GLOBALS['phpgw']->db; $id = (int) $id; $sql = "SELECT * FROM fm_entity_1_11 WHERE id = {$id}"; $this->db->query($sql, __LINE__, __FILE__); $anlegg = array(); $TreeID = $this->type; $PeriodFrom = date('Ym'); if ($current_value) { $PeriodTo = 209912; } else { $PeriodTo = '000000'; } $memory = xmlwriter_open_memory(); xmlwriter_set_indent($memory, true); xmlwriter_start_document($memory, '1.0', 'UTF-8'); xmlwriter_start_element($memory, 'TreeListe'); xmlwriter_write_attribute($memory, 'TreeID', $TreeID); xmlwriter_write_attribute($memory, 'xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance'); xmlwriter_write_attribute($memory, 'xsi:noNamespaceSchemaLocation', 'TreeListe.xsd'); while ($this->db->next_record()) { xmlwriter_start_element($memory, 'Tree'); xmlwriter_write_element($memory, 'ID', 'TJ'); xmlwriter_write_element($memory, 'Verdi', substr($this->db->f('maalepunkt_id'), -8)); xmlwriter_write_element($memory, 'Beskrivelse', $this->db->f('address')); xmlwriter_write_element($memory, 'Firma', 'BB'); xmlwriter_write_element($memory, 'PeriodeFra', $PeriodFrom); xmlwriter_write_element($memory, 'PeriodeTil', $PeriodTo); xmlwriter_write_element($memory, 'Status', 'N'); xmlwriter_start_element($memory, 'BegrepsLister'); xmlwriter_start_element($memory, 'BegrepsListe'); xmlwriter_write_attribute($memory, 'Prosent', 100); xmlwriter_start_element($memory, 'Begrep'); xmlwriter_write_comment($memory, 'Firma'); xmlwriter_write_element($memory, 'ID', 'A3'); xmlwriter_write_element($memory, 'Verdi', 'BB'); xmlwriter_end_element($memory); xmlwriter_start_element($memory, 'Begrep'); xmlwriter_write_comment($memory, 'Art'); xmlwriter_write_element($memory, 'ID', 'A0'); xmlwriter_write_element($memory, 'Verdi', '12304121'); xmlwriter_end_element($memory); xmlwriter_start_element($memory, 'Begrep'); xmlwriter_write_comment($memory, 'Asvar'); xmlwriter_write_element($memory, 'ID', 'C1'); xmlwriter_write_element($memory, 'Verdi', 45); xmlwriter_end_element($memory); xmlwriter_start_element($memory, 'Begrep'); xmlwriter_write_comment($memory, 'Tjeneste'); xmlwriter_write_element($memory, 'ID', 'TJE'); xmlwriter_write_element($memory, 'Verdi', ''); xmlwriter_end_element($memory); xmlwriter_start_element($memory, 'Begrep'); xmlwriter_write_comment($memory, 'Objekt'); xmlwriter_write_element($memory, 'ID', 'F0'); xmlwriter_write_element($memory, 'Verdi', $this->db->f('loc1')); xmlwriter_end_element($memory); xmlwriter_start_element($memory, 'Begrep'); xmlwriter_write_comment($memory, 'Prosjekt'); xmlwriter_write_element($memory, 'ID', 'B0'); xmlwriter_write_element($memory, 'Verdi', ''); xmlwriter_end_element($memory); xmlwriter_start_element($memory, 'Begrep'); xmlwriter_write_comment($memory, 'Fagkode'); xmlwriter_write_element($memory, 'ID', 'B1'); xmlwriter_write_element($memory, 'Verdi', '999'); xmlwriter_end_element($memory); xmlwriter_start_element($memory, 'Begrep'); xmlwriter_write_comment($memory, 'AV'); xmlwriter_write_element($memory, 'ID', 'AV'); xmlwriter_write_element($memory, 'Verdi', ''); xmlwriter_end_element($memory); xmlwriter_end_element($memory); xmlwriter_end_element($memory); xmlwriter_end_element($memory); } xmlwriter_end_element($memory); $xml = xmlwriter_output_memory($memory, true); if ($this->debug) { header('Content-type: text/xml'); echo $xml; die; } return $xml; }
<?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_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===
/** * Sets our 3DSecure request to confirm the transaction. * * @param string $pares * @param string $reference * @param string $method * @return SimpleXML * */ function set3DSecureAuthRequest($pares, $reference, $method = 'deposits') { if (is_null($pares) || empty($pares)) { throw new Zend_Exception('PaRes is not set'); } if (strlen($reference) !== 16) { throw new Zend_Exception('Reference must be 16 characters long'); } $xml = xmlwriter_open_memory(); xmlwriter_start_element($xml, 'Request'); $auth = $this->_handleAuth($method); xmlwriter_write_raw($xml, $auth); xmlwriter_start_element($xml, 'Transaction'); xmlwriter_start_element($xml, 'HistoricTxn'); xmlwriter_write_element($xml, 'reference', $reference); xmlwriter_start_element($xml, 'method'); xmlwriter_write_attribute($xml, 'tx_status_u', 'accept'); xmlwriter_write_raw($xml, 'threedsecure_authorization_request'); xmlwriter_end_element($xml); xmlwriter_write_element($xml, 'pares_message', $pares); xmlwriter_end_element($xml); xmlwriter_end_element($xml); xmlwriter_end_element($xml); return xmlwriter_output_memory($xml, true); }
<?php $xw = xmlwriter_open_memory(); xmlwriter_set_indent($xw, TRUE); xmlwriter_start_document($xw, NULL, "UTF-8"); xmlwriter_start_element($xw, 'root'); xmlwriter_write_attribute_ns($xw, 'prefix', '', 'http://www.php.net/uri'); xmlwriter_start_element($xw, 'elem1'); xmlwriter_write_attribute($xw, 'attr1', 'first'); xmlwriter_end_element($xw); xmlwriter_full_end_element($xw); xmlwriter_end_document($xw); $output = xmlwriter_flush($xw, true); print $output; // write attribute_ns without start_element first $xw = xmlwriter_open_memory(); var_dump(xmlwriter_write_attribute_ns($xw, 'prefix', 'id', 'http://www.php.net/uri', 'elem1')); print xmlwriter_output_memory($xw);
if ($x !== $y) { echo "Failed: {$y}\n"; echo "got: {$x}\n"; } } function VERIFY($x) { VS($x, true); } $xml = xmlwriter_open_memory(); var_dump($xml); VERIFY(xmlwriter_set_indent($xml, true)); VERIFY(xmlwriter_set_indent_string($xml, " ")); VERIFY(xmlwriter_start_document($xml, "1.0", "utf-8")); VERIFY(xmlwriter_start_element($xml, "node")); VERIFY(xmlwriter_write_attribute($xml, "name", "value")); VERIFY(xmlwriter_start_attribute($xml, "name2")); VERIFY(xmlwriter_end_attribute($xml)); VERIFY(xmlwriter_write_element($xml, "subnode", "some text")); VERIFY(xmlwriter_end_element($xml)); VERIFY(xmlwriter_start_element_ns($xml, "fb", "node", "http://www.facebook.com/")); VERIFY(xmlwriter_write_attribute_ns($xml, "fb", "attr", "http://www.facebook.com/", "value")); 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"));
/** * Renders an xml_element structure to XMLWriter memory. This * basically acts as a wrapper for api_xml2_render_object, first * parsing through xml_element layers and then calling api_xml2_render_object * to actually render the objects and arrays found. * * @param $xml_memory the xmlwriter memory to use (created with xmlwriter_open_memory()) * @param $object the xml_element to be rendered */ function api_xml3_render_object($xml_memory, $object) { if (is_array($object->value) && isset($object->value[0]) && $object->value[0] instanceof xml_element) { xmlwriter_start_element($xml_memory, $object->name); if (isset($object->attrs)) { foreach ($object->attrs as $k => $v) { xmlwriter_write_attribute($xml_memory, $k, $v); } } foreach ($object->value as $elem) { api_xml3_render_object($xml_memory, $elem); } xmlwriter_end_element($xml_memory); } else { api_xml2_render_object($xml_memory, $object->name, $object->value, $object->attrs); } }