Ejemplo n.º 1
0
 static function getXml($arrData = false, $root = 'root')
 {
     $xml = '<?xml version="1.0" encoding="UTF-8"?><' . $root . '></' . $root . '>';
     if (is_array($arrData) && !empty($arrData)) {
         $objXml = simplexml_load_string($xml);
         self::parseMultiArrayToXml($objXml, $arrData);
         $xml = strings::htmlDecode($objXml->asXML());
     }
     return $xml;
 }
Ejemplo n.º 2
0
 /**
  * private функция записи данных в xml
  *
  * @param array $arrFieldsXmlData - эталонный массив для данных хранимых в формате xml
  *
  * @return bool
  */
 private function formXmlData(&$arrFieldsXmlData)
 {
     if (is_array($arrFieldsXmlData) && !empty($arrFieldsXmlData)) {
         $xmlData = simplexml_load_string('<?xml version="1.0" encoding="UTF-8"?><root></root>');
         foreach ($arrFieldsXmlData as $nameField => &$fieldValues) {
             if (is_array($fieldValues) && !empty($fieldValues)) {
                 $xmlField = $xmlData->addChild($nameField);
                 foreach ($fieldValues as &$arrFieldsVals) {
                     if (isset($arrFieldsVals['arrBindFields']) && is_array($arrFieldsVals['arrBindFields']) && !empty($arrFieldsVals['arrBindFields']) || isset($arrFieldsVals['arrNoBindFields']) && is_array($arrFieldsVals['arrNoBindFields']) && !empty($arrFieldsVals['arrNoBindFields'])) {
                         $child = $xmlField->addChild('child');
                         if (isset($arrFieldsVals['arrBindFields'])) {
                             foreach ($arrFieldsVals['arrBindFields'] as $field => &$value) {
                                 !empty($value) ? $child->addChild($field, '<![CDATA[' . $value . ']]>') : $child->addChild($field);
                             }
                         }
                         if (isset($arrFieldsVals['arrNoBindFields'])) {
                             foreach ($arrFieldsVals['arrNoBindFields'] as $field => &$value) {
                                 !empty($value) ? $child->addChild($field, '<![CDATA[' . $value . ']]>') : $child->addChild($field);
                             }
                         }
                     } else {
                         unset($xmlData->{$nameField});
                         continue;
                     }
                 }
             } else {
                 continue;
             }
         }
         $this->arrServiceFields['xml_data'] = strings::htmlDecode($xmlData->asXML());
         return true;
     } else {
         return false;
     }
 }