private function createElementData($strPageId, XMLWriter $objWriter) { $arrElements = class_module_pages_pageelement::getAllElementsOnPage($strPageId); foreach ($arrElements as $objOneElement) { $objWriter->startElement("element"); //elements metadata $objWriter->startElement("metadata"); $objWriter->startElement("systemid"); $objWriter->text($objOneElement->getSystemid()); $objWriter->endElement(); $objWriter->startElement("placeholder"); $objWriter->text($objOneElement->getStrPlaceholder()); $objWriter->endElement(); $objWriter->startElement("name"); $objWriter->text($objOneElement->getStrName()); $objWriter->endElement(); $objWriter->startElement("element"); $objWriter->text($objOneElement->getStrElement()); $objWriter->endElement(); $objWriter->startElement("title"); $objWriter->text($objOneElement->getStrTitle(false)); $objWriter->endElement(); $objWriter->startElement("language"); $objWriter->text($objOneElement->getStrLanguage()); $objWriter->endElement(); $objWriter->endElement(); //the elements-content itself $objElement = $objOneElement->getConcreteAdminInstance(); //Fetch the table $strElementTable = $objElement->getTable(); $objWriter->startElement("foreignTable"); $objWriter->startAttribute("table"); $objWriter->text(uniStrReplace(_dbprefix_, "", $strElementTable)); $objWriter->endAttribute(); //content-row $arrContentRow = class_carrier::getInstance()->getObjDB()->getPRow("SELECT * FROM " . $strElementTable . " WHERE content_id = ? ", array($objOneElement->getSystemid())); $arrColumns = class_carrier::getInstance()->getObjDB()->getColumnsOfTable($strElementTable); foreach ($arrColumns as $arrOneCol) { $objWriter->startElement("column"); $objWriter->startAttribute("name"); $objWriter->text($arrOneCol["columnName"]); $objWriter->endAttribute(); $objWriter->startCdata(); $objWriter->text($arrContentRow[$arrOneCol["columnName"]]); $objWriter->endCdata(); //column $objWriter->endElement(); } //foreignTable $objWriter->endElement(); //element $objWriter->endElement(); } }
<?php /* $Id$ */ /* Libxml 2.6.24 and up adds a new line after a processing instruction (PI) */ $xw = new XMLWriter(); $xw->openMemory(); $xw->setIndent(TRUE); $xw->startDocument("1.0", "UTF-8"); $xw->startElement('root'); $xw->writeAttribute('id', 'elem1'); $xw->startElement('elem1'); $xw->writeAttribute('attr1', 'first'); $xw->writeComment('start PI'); $xw->startElement('pi'); $xw->writePi('php', 'echo "hello world"; '); $xw->endElement(); $xw->startElement('cdata'); $xw->startCdata(); $xw->text('<>&"'); $xw->endCdata(); $xw->endElement(); $xw->endElement(); $xw->endElement(); $xw->endDocument(); // Force to write and empty the buffer $output = $xw->flush(true); print $output;