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();
     }
 }
Пример #2
0
<?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;