Changeset 70347 in spip-zone


Ignore:
Timestamp:
Mar 3, 2013, 10:23:00 AM (6 years ago)
Author:
eric@…
Message:

Amélioration de la fonction de conversion xml en tableau

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/boussole/trunk/inc/simplexml_to_array.php

    r70346 r70347  
    1818        // Cette fonction getDocNamespaces() est longue sur de gros xml. On permet donc
    1919        // de l'activer ou pas suivant le contenu supposé du XML
    20         if ($obj) {
     20        if ($obj AND is_object($obj)) {
    2121                if ($utiliser_namespace)
    2222                        $namespace = $obj->getDocNamespaces(true);
     
    2525                $name = strtolower((string)$obj->getName());
    2626                $text = trim((string)$obj);
    27                 if( strlen($text) <= 0 ) {
     27                if (strlen($text) <= 0) {
    2828                        $text = NULL;
    2929                }
     
    3333
    3434                // get info for all namespaces
    35                 if (is_object($obj)) {
    36                         foreach( $namespace as $ns=>$nsUrl ) {
    37                                 // atributes
    38                                 $objAttributes = $obj->attributes($ns, true);
    39                                 foreach( $objAttributes as $attributeName => $attributeValue ) {
    40                                         $attribName = strtolower(trim((string)$attributeName));
    41                                         $attribVal = trim((string)$attributeValue);
    42                                         if (!empty($ns)) {
    43                                                 $attribName = $ns . ':' . $attribName;
    44                                         }
    45                                         $attributes[$attribName] = $attribVal;
     35                foreach( $namespace as $ns=>$nsUrl ) {
     36                        // attributes
     37                        $objAttributes = $obj->attributes($ns, true);
     38                        foreach( $objAttributes as $attributeName => $attributeValue ) {
     39                                $attribName = strtolower(trim((string)$attributeName));
     40                                $attribVal = trim((string)$attributeValue);
     41                                if (!empty($ns)) {
     42                                        $attribName = $ns . ':' . $attribName;
    4643                                }
     44                                $attributes[$attribName] = $attribVal;
     45                        }
    4746
    48                                 // children
    49                                 $objChildren = $obj->children($ns, true);
    50                                 foreach( $objChildren as $childName=>$child ) {
    51                                         $childName = strtolower((string)$childName);
    52                                         if( !empty($ns) ) {
    53                                                 $childName = $ns.':'.$childName;
    54                                         }
    55                                         $children[$childName][] = inc_simplexml_to_array_dist($child);
     47                        // children
     48                        $objChildren = $obj->children($ns, true);
     49                        foreach( $objChildren as $childName=>$child ) {
     50                                $childName = strtolower((string)$childName);
     51                                if( !empty($ns) ) {
     52                                        $childName = $ns.':'.$childName;
    5653                                }
     54                                $children[$childName][] = inc_simplexml_to_array_dist($child);
    5755                        }
    5856                }
Note: See TracChangeset for help on using the changeset viewer.