コード例 #1
0
 /**
  * @param array $params
  * @param string $message
  * @param int $code
  */
 private function showResponse(array $params, $message = '', $code = 0)
 {
     header("Content-type: text/xml; charset=utf-8");
     $writer = new XMLWriter();
     $writer->openURI('php://output');
     $writer->startDocument('1.0', 'UTF-8');
     $writer->startElement($params['action'] . 'Response');
     $writer->startAttribute('performedDatetime');
     $writer->text(date('c'));
     $writer->endAttribute();
     $writer->startAttribute('code');
     $writer->text($code);
     $writer->endAttribute();
     $writer->startAttribute('invoiceId');
     $writer->text($params['invoiceId']);
     $writer->endAttribute();
     $writer->startAttribute('message');
     $writer->text($message);
     $writer->endAttribute();
     $writer->startAttribute('shopId');
     $writer->text($params['shopId']);
     $writer->endAttribute();
     $writer->endElement();
     $writer->endDocument();
     Yii::app()->end();
 }
コード例 #2
0
 /**
  * Write a property
  *
  * @param ODataProperty &$odataProperty Property to be written
  * @param boolean       $isTopLevel     is link top level or not.
  * 
  * @return nothing
  */
 protected function beginWriteProperty(ODataProperty &$odataProperty, $isTopLevel)
 {
     $this->xmlWriter->startElementNS(ODataConstants::ODATA_NAMESPACE_PREFIX, $odataProperty->name, null);
     if ($odataProperty->typeName != null) {
         $this->xmlWriter->startAttributeNs(ODataConstants::ODATA_METADATA_NAMESPACE_PREFIX, ODataConstants::ATOM_TYPE_ATTRIBUTE_NAME, null);
         $this->xmlWriter->text($odataProperty->typeName);
     }
     if ($isTopLevel) {
         $this->xmlWriter->startAttribute(ODataConstants::XMLNS_NAMESPACE_PREFIX);
         $this->xmlWriter->text(ODataConstants::ODATA_METADATA_NAMESPACE);
         $this->xmlWriter->startAttributeNs(ODataConstants::XMLNS_NAMESPACE_PREFIX, ODataConstants::ODATA_NAMESPACE_PREFIX, null);
         $this->xmlWriter->text(ODataConstants::ODATA_NAMESPACE);
         $this->xmlWriter->startAttributeNs(ODataConstants::XMLNS_NAMESPACE_PREFIX, ODataConstants::ODATA_METADATA_NAMESPACE_PREFIX, null);
         $this->xmlWriter->text(ODataConstants::ODATA_METADATA_NAMESPACE);
     }
     if ($odataProperty->typeName != null || $isTopLevel) {
         $this->xmlWriter->endAttribute();
     }
 }
コード例 #3
0
ファイル: class-sv-wc-helper.php プロジェクト: javolero/dabba
 /**
  * Convert array into XML by recursively generating child elements
  *
  * First instantiate a new XML writer object:
  *
  * $xml = new XMLWriter();
  *
  * Open in memory (alternatively you can use a local URI for file output)
  *
  * $xml->openMemory();
  *
  * Then start the document
  *
  * $xml->startDocument( '1.0', 'UTF-8' );
  *
  * Don't forget to end the document and output the memory
  *
  * $xml->endDocument();
  *
  * $your_xml_string = $xml->outputMemory();
  *
  * @since 2.2.0
  * @param \XMLWriter $xml_writer XML writer instance
  * @param string|array $element_key name for element, e.g. <per_page>
  * @param string|array $element_value value for element, e.g. 100
  * @return string generated XML
  */
 public static function array_to_xml($xml_writer, $element_key, $element_value = array())
 {
     if (is_array($element_value)) {
         // handle attributes
         if ('@attributes' === $element_key) {
             foreach ($element_value as $attribute_key => $attribute_value) {
                 $xml_writer->startAttribute($attribute_key);
                 $xml_writer->text($attribute_value);
                 $xml_writer->endAttribute();
             }
             return;
         }
         // handle multi-elements (e.g. multiple <Order> elements)
         if (is_numeric(key($element_value))) {
             // recursively generate child elements
             foreach ($element_value as $child_element_key => $child_element_value) {
                 $xml_writer->startElement($element_key);
                 foreach ($child_element_value as $sibling_element_key => $sibling_element_value) {
                     self::array_to_xml($xml_writer, $sibling_element_key, $sibling_element_value);
                 }
                 $xml_writer->endElement();
             }
         } else {
             // start root element
             $xml_writer->startElement($element_key);
             // recursively generate child elements
             foreach ($element_value as $child_element_key => $child_element_value) {
                 self::array_to_xml($xml_writer, $child_element_key, $child_element_value);
             }
             // end root element
             $xml_writer->endElement();
         }
     } else {
         // handle single elements
         if ('@value' == $element_key) {
             $xml_writer->text($element_value);
         } else {
             // wrap element in CDATA tags if it contains illegal characters
             if (false !== strpos($element_value, '<') || false !== strpos($element_value, '>')) {
                 $xml_writer->startElement($element_key);
                 $xml_writer->writeCdata($element_value);
                 $xml_writer->endElement();
             } else {
                 $xml_writer->writeElement($element_key, $element_value);
             }
         }
         return;
     }
 }
コード例 #4
0
 private function createPageMetadata($strPageId, XMLWriter $objWriter)
 {
     //loop all languages if given
     $objLanguages = new class_module_languages_language();
     $strCurrentLanguage = $objLanguages->getStrAdminLanguageToWorkOn();
     $arrLanguages = class_module_languages_language::getObjectList();
     foreach ($arrLanguages as $objOneLanguage) {
         $objLanguages->setStrAdminLanguageToWorkOn($objOneLanguage->getStrName());
         $objPage = new class_module_pages_page($strPageId);
         $objWriter->startElement("propertyset");
         $objWriter->startAttribute("language");
         $objWriter->text($objOneLanguage->getStrName());
         $objWriter->endAttribute();
         $objWriter->startElement("browsername");
         $objWriter->text($objPage->getStrBrowsername());
         $objWriter->endElement();
         $objWriter->startElement("description");
         $objWriter->text($objPage->getStrDesc());
         $objWriter->endElement();
         $objWriter->startElement("keywords");
         $objWriter->text($objPage->getStrKeywords());
         $objWriter->endElement();
         $objWriter->startElement("template");
         $objWriter->text($objPage->getStrTemplate());
         $objWriter->endElement();
         $objWriter->startElement("seostring");
         $objWriter->text($objPage->getStrSeostring());
         $objWriter->endElement();
         $objWriter->startElement("language");
         $objWriter->text($objPage->getStrLanguage());
         $objWriter->endElement();
         $objWriter->startElement("alias");
         $objWriter->text($objPage->getStrAlias());
         $objWriter->endElement();
         $objWriter->startElement("path");
         $objWriter->text($objPage->getStrPath());
         $objWriter->endElement();
         $objWriter->startElement("target");
         $objWriter->text($objPage->getStrTarget());
         $objWriter->endElement();
         //propertyset
         $objWriter->endElement();
     }
     $objLanguages->setStrAdminLanguageToWorkOn($strCurrentLanguage);
 }
コード例 #5
0
ファイル: Xml.php プロジェクト: dfritschy/ezpublish-kernel
 /**
  * Start attribute
  *
  * @param string $name
  * @param string $value
  */
 public function startAttribute($name, $value)
 {
     $this->checkStartAttribute($name);
     $this->xmlWriter->startAttribute($name);
     $this->xmlWriter->text($value);
 }
コード例 #6
0
ファイル: RSS.php プロジェクト: trickyplan/codeine
<?php

/* Codeine
 * @author bergstein@trickyplan.com
 * @description: Simple HTML Renderer
 * @package Codeine
 * @version 8.x
 */
setFn('Render', function ($Call) {
    $Call = F::Hook('beforeRSSPipeline', $Call);
    $XML = new XMLWriter();
    $XML->openMemory();
    $XML->startDocument('1.0', 'UTF-8');
    $XML->setIndent(true);
    $XML->startElement('rss');
    $XML->startAttribute('version');
    $XML->text('2.0');
    $XML->endAttribute();
    $XML->startElement('channel');
    $XML->writeElement('title', $Call['Project']['Title']);
    // FIXME
    $XML->writeElement('link', $Call['HTTP']['Proto'] . $Call['HTTP']['Host'] . $Call['Link']);
    if (isset($Call['Page']['Description'])) {
        $XML->writeElement('description', $Call['Page']['Description']);
    } else {
        $XML->writeElement('description', '');
    }
    $XML->writeElement('generator', 'Codeine ' . $Call['Version']['Codeine']['Major']);
    $XML->writeElement('pubDate', date(DATE_RSS, time()));
    $XML->writeElement('lastBuildDate', date(DATE_RSS, time()));
    if (!isset($Call['Slug'])) {
コード例 #7
0
ファイル: TemplateProcessor.php プロジェクト: OAFCROB/PHPWord
 /**
  * Saves the result document.
  *
  * @return string
  * @throws \PhpOffice\PhpWord\Exception\Exception
  */
 public function save()
 {
     foreach ($this->temporaryDocumentHeaders as $index => $headerXML) {
         $this->zipClass->addFromString($this->getHeaderName($index), $this->temporaryDocumentHeaders[$index]);
     }
     $this->zipClass->addFromString('word/document.xml', $this->temporaryDocumentMainPart);
     $word = new Word2007();
     $read = $word->readRelationships($this->zipClass->filename);
     if (count($this->imageData)) {
         $read['document'] = array_merge($read['document'], $this->imageData);
         $xml = new \XMLWriter();
         $xml->openMemory();
         $xml->setIndent(true);
         $xml->startDocument('1.0', 'UTF-8');
         $xml->startElement('Relationships');
         $xml->startAttribute('xmlns');
         $xml->text('http://schemas.openxmlformats.org/package/2006/relationships');
         $xml->endAttribute();
         foreach ($read['document'] as $key => $data) {
             $xml->startElement('Relationship');
             $xml->startAttribute('Id');
             $xml->text($key);
             $xml->endAttribute();
             $xml->startAttribute('Type');
             $xml->text('http://schemas.openxmlformats.org/officeDocument/2006/relationships/' . $data['type']);
             $xml->endAttribute();
             $xml->startAttribute('Target');
             $xml->text($data['type'] === 'image' ? $data['docPart'] : $data['docPart'] . '.xml');
             $xml->endAttribute();
             $xml->endElement();
         }
         $xml->endElement();
         $xml->endDocument();
         $this->zipClass->addFromString('word/_rels/document.xml.rels', $xml->outputMemory(true));
     }
     foreach ($this->temporaryDocumentFooters as $index => $headerXML) {
         $this->zipClass->addFromString($this->getFooterName($index), $this->temporaryDocumentFooters[$index]);
     }
     // Close zip file
     if (false === $this->zipClass->close()) {
         throw new Exception('Could not close zip file.');
     }
     return $this->temporaryDocumentFilename;
 }
コード例 #8
0
ファイル: String.php プロジェクト: Negative-Network/Pak-PHP
 /**
  * Used to export the given data as rss feed
  *
  * It returns a xml data string containing rss feed data
  *
  * @link http://www.w3schools.com/xml/xml_syntax.asp
  * @param array $data the data to be exported to rss format
  * @param array $xml_namespace the xml namespace for the document
  *     prefix => string the xml namespace prefix
  *     name => string the xml namespace name
  *     uri => string the xml namespace uri
  * @param array $namespace_attributes the list of tags that need to be prefixed with namespace
  * 
  * @return string $rss_file the contents of the rss file
  */
 public function ExportToRss($data, $xml_namespace, $namespace_attributes)
 {
     /** The XMLWriter class object is created. The XMLWriter php extension is enabled by default */
     $writer = new \XMLWriter();
     $writer->openMemory();
     /** The xml prolog is added */
     $writer->startDocument('1.0', 'UTF-8');
     $writer->setIndent(true);
     $writer->startAttributeNS($xml_namespace['prefix'], $xml_namespace['name'], $xml_namespace['uri']);
     /** The rss tag is opened */
     $writer->startElement('rss');
     $writer->startAttribute('version');
     $writer->text('2.0');
     $writer->endAttribute();
     $writer->startElement('channel');
     /** Each Item is added to the rss feed */
     for ($count = 0; $count < count($data); $count++) {
         $data_item = $data[$count];
         $writer->startElement('item');
         /** Xml tag is created for each data item */
         foreach ($data_item as $tag_name => $tag_value) {
             /** If the tag name is in the list of tags that need to be prefixed with namespace */
             if (in_array($tag_name, $namespace_attributes)) {
                 /** The namespace is added to the tag name */
                 $tag_name = $xml_namespace['name'] . ":" . $tag_name;
             }
             $writer->startElement($tag_name);
             $writer->text($tag_value);
             $writer->endElement();
         }
         $writer->endElement();
     }
     $writer->endElement();
     $writer->endElement();
     $writer->endDocument();
     /** The xml data is exported to string */
     $rss_file = $writer->outputMemory(TRUE);
     return $rss_file;
 }
コード例 #9
0
ファイル: XML-RPC.php プロジェクト: trickyplan/codeine
 * @version 8.x
 */
setFn('Run', function ($Call) {
    $XML = new XMLWriter();
    $XML->openMemory();
    $XML->startDocument('1.0', 'UTF-8');
    $XML->setIndent(true);
    $XML->startElement('methodCall');
    $XML->startElement('methodName');
    $XML->text($Call['Method']);
    $XML->endElement();
    $Root = '';
    $XML->startElement('params');
    F::Map($Call['Call'], function ($Key, $Value) use($XML, &$Root) {
        if (substr($Key, 0, 1) == '@') {
            $XML->startAttribute(substr($Key, 1));
            $XML->text($Value);
            $XML->endAttribute();
        } else {
            if (is_numeric($Key)) {
                if ($Key > 0) {
                    // FIXME Костыль!
                    $XML->endElement();
                }
            } else {
                $XML->startElement($Key);
                $Root = $Key;
            }
            if (is_array($Value)) {
            } else {
                $XML->text($Value);
コード例 #10
0
ファイル: context_rk.php プロジェクト: sergrin/crawlers-il
    print "Connect failed: " . $mysqli->connect_error . "\n";
    exit;
}
/* set character set */
if (!$mysqli->set_charset("utf8")) {
    print "Error loading character set utf8: " . $mysqli->error;
    exit;
}
$sql = "\n\t\tSELECT\n\t\t\tl_make as vendor,\n\t\t\tl_model,\n\t\t\tl_geo_city as geo,\n\t\t\tcount(*) as num,\n\t\t\tsum(if(cmp_rank is null,0,1)) as promoted,\n\t\t\tif((sum(if(cmp_rank is null,0,1)) / count(*)) > 0.6,'true','false') as flag,\n\t\t\tl_subcategory as category,\n\t\t\tif(l_isdealer=1,'new','used') as `type`,\n\t\t\tconcat(\n\t\t\t\t'http://vehicles.pingola.ru/search/транспорт/',\n\t\t\t\tl_geo_city,\n\t\t\t\t'/?make=',\n\t\t\t\tl_make,\n\t\t\t\t'&model=',\n\t\t\t\tl_model,\n\t\t\t\tif(l_subcategory<>'','&bodytype=',''),\n\t\t\t\tl_subcategory,\n\t\t\t\tif(l_isdealer=1,'&type=Новые','&type=Подержанные')\n\t\t\t) as link\n\t\tFROM ru_eyezeek.vehicles v\n\t\t\tleft join ru_eyezeek.promoted_vehicles p on v.l_id=p.o_l_id\n\t\twhere l_isactive=1 and l_make<>'' and l_model<>'' and l_geo_city<>''\n\t\tgroup by l_make,l_model,l_geo_city,l_subcategory,l_isdealer\n\t\torder by num desc limit 10000";
if ($result = $mysqli->query($sql)) {
    $writer = new XMLWriter();
    $writer->openURI('/home/eyezeek/netup/ru/context_rk/context_rk.xml');
    $writer->startDocument('1.0', 'UTF-8');
    $writer->setIndent(TRUE);
    $writer->startElement('ROOT');
    $writer->writeElement('CreationDate', date("d/m/y : H:i:s", time()));
    while ($arr = $result->fetch_assoc()) {
        $writer->startElement('row');
        foreach ($arr as $name => $value) {
            $writer->startElement('field');
            $writer->startAttribute('name');
            $writer->text($name);
            $writer->endAttribute();
            $writer->text($value);
            $writer->endElement();
        }
        $writer->endElement();
    }
    $writer->endDocument();
    $writer->flush();
}
コード例 #11
0
ファイル: OO_003.php プロジェクト: badlamer/hhvm
<?php

/* $Id$ */
$xw = new XMLWriter();
$xw->openMemory();
$xw->startDocument('1.0', 'UTF-8');
$xw->startElement("tag1");
$res = $xw->startAttribute('attr1');
$xw->text("attr1_value");
$xw->endAttribute();
$res = $xw->startAttribute('attr2');
$xw->text("attr2_value");
$xw->endAttribute();
$xw->text("Test text for tag1");
$res = $xw->startElement('tag2');
if ($res < 1) {
    echo "StartElement context validation failed\n";
    exit;
}
$xw->endDocument();
// Force to write and empty the buffer
echo $xw->flush(true);
?>
===DONE===
コード例 #12
0
ファイル: XML.php プロジェクト: trickyplan/codeine
/* Codeine
 * @author bergstein@trickyplan.com
 * @description: Simple HTML Renderer
 * @package Codeine
 * @version 8.x
 */
setFn('Render', function ($Call) {
    $XML = new XMLWriter();
    $XML->openMemory();
    $XML->startDocument('1.0', 'UTF-8');
    $XML->setIndent(true);
    if (isset($Call['Output']['Root'])) {
        $XML->startElement($Call['Output']['Root']);
        if (isset($Call['Namespace'])) {
            $XML->startAttribute('xmlns');
            $XML->text($Call['Namespace']);
            $XML->endAttribute();
        }
        if (isset($Call['Attributes'])) {
            foreach ($Call['Attributes'] as $Key => $Value) {
                if (is_array($Value)) {
                    $XML->startAttributeNs($Value['Prefix'], $Value['Key'], null);
                    $XML->text($Value['Value']);
                } else {
                    $XML->startAttribute($Key);
                    $XML->text($Value);
                }
                $XML->endAttribute();
            }
        }