Ver Mensaje Individual
  #7 (permalink)  
Antiguo 31/05/2011, 05:29
Avatar de abimaelrc
abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Guardar objeto DOM en base de datos

Algo así
Código PHP:
Ver original
  1. <?php
  2. $str = <<<XML
  3. <foo>
  4.     <bar something="value">bar</bar>
  5.     <baz>baz</baz>
  6.     <candy>candy</candy>
  7.     <fruits>fruits</fruits>
  8.     <vegetable>vegetable</vegetable>
  9. </foo>
  10. XML;
  11.  
  12. function getArray($node)
  13. {
  14.     $array = false;
  15.     if ($node->hasAttributes()){
  16.         foreach ($node->attributes as $attr){
  17.             $array['@' . $attr->nodeName] = $attr->nodeValue;
  18.         }
  19.     }
  20.     if ($node->hasChildNodes()){
  21.         if ($node->childNodes->length == 1){
  22.             $array[$node->firstChild->nodeName] = $node->firstChild->nodeValue;
  23.         }
  24.         else{
  25.             foreach ($node->childNodes as $childNode){
  26.                 if ($childNode->nodeType != XML_TEXT_NODE){
  27.                     $array[$childNode->nodeName][] = getArray($childNode);
  28.                 }
  29.             }
  30.         }
  31.     }
  32.     return $array;
  33. }
  34.  
  35. $xml = new DOMDocument();
  36. $xml->formatOutput = false;
  37. $xml->preserveWhiteSpace = false;
  38. $xml->loadXML($str);
  39. print_r(getArray($xml->firstChild));
La función getArray la tome de aquí http://www.php.net/manual/en/class.d...ent.php#101014
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos