]> git.mxchange.org Git - friendica.git/blobdiff - src/Util/XML.php
Merge pull request #4951 from MrPetovan/bug/4946-move-current-theme-to-app
[friendica.git] / src / Util / XML.php
index c866475c1b40d69e1c057de9e739e6c1e9c3e17f..8dc540324368b23af4d917c9e05956de333ade1e 100644 (file)
@@ -52,6 +52,7 @@ class XML
                        }
                }
 
+               $element = null;
                foreach ($array as $key => $value) {
                        if (!isset($element) && isset($xml)) {
                                $element = $xml;
@@ -185,12 +186,13 @@ class XML
                        return(null);
                }
 
+               $xml_element_copy = '';
                if (!is_string($xml_element)
                        && !is_array($xml_element)
                        && (get_class($xml_element) == 'SimpleXMLElement')
                ) {
-                               $xml_element_copy = $xml_element;
-                               $xml_element = get_object_vars($xml_element);
+                       $xml_element_copy = $xml_element;
+                       $xml_element = get_object_vars($xml_element);
                }
 
                if (is_array($xml_element)) {
@@ -413,4 +415,20 @@ class XML
                        $child->parentNode->removeChild($child);
                }
        }
+
+       public static function parseString($s, $strict = true)
+       {
+               // the "strict" parameter is deactivated
+               libxml_use_internal_errors(true);
+
+               $x = @simplexml_load_string($s);
+               if (!$x) {
+                       logger('libxml: parse: error: ' . $s, LOGGER_DATA);
+                       foreach (libxml_get_errors() as $err) {
+                               logger('libxml: parse: ' . $err->code." at ".$err->line.":".$err->column." : ".$err->message, LOGGER_DATA);
+                       }
+                       libxml_clear_errors();
+               }
+               return $x;
+       }
 }