2014-06-24 2 views

Répondre

0

de cette classe:

class ExSimpleXMLElement extends SimpleXMLElement 
{ 


    public function _construct($xml){ 
     parent::_construct($xml); 
    } 

    /** 
    * Add SimpleXMLElement code into a SimpleXMLElement 
    * @param SimpleXMLElement $append 
    */ 
    public function appendXML($append) 
    { 
     if ($append) { 
      if (strlen(trim((string) $append))==0) { 
       $xml = $this->addChild($append->getName()); 
       foreach($append->children() as $child) { 
        $xml->appendXML($child); 
       } 
      } else { 
       $xml = $this->addChild($append->getName(), (string) $append); 
      }  
      foreach($append->attributes() as $n => $v) { 
       $xml->addAttribute($n, $v); 
      } 
     } 
    } 
} 

Vous transformerait comme ceci:

<?php 

class ExSimpleXMLElement 
{ 
    private $sxe; 

    public function loadXml($xml){ 
     $this->sxe = new SimpleXMLElement($xml); 
    } 

    /** 
    * Add SimpleXMLElement code into a SimpleXMLElement 
    * @param SimpleXMLElement $append 
    */ 
    public function appendXML($append) 
    { 
     if ($append) { 
      if (strlen(trim((string) $append))==0) { 
       $xml = $this->sxe->addChild($append->getName()); 
       foreach($append->children() as $child) { 
        $xml->appendXML($child); 
       } 
      } else { 
       $xml = $this->sxe->addChild($append->getName(), (string) $append); 
      }  
      foreach($append->attributes() as $n => $v) { 
       $xml->addAttribute($n, $v); 
      } 
     } 
    } 
} 

Et l'utiliser comme ceci:

$this->load->library('ExSimpleXMLElement'); 

$this->exsimplexmlelement->loadXML($xml); 
+0

merci pour reponder machineaddict – Corematrixx

+0

machineaddict. J'ai essayé le code et j'obtiens l'image d'erreur, qui peut être? J'appelle le liberia donc: [link] (https://docs.google.com/file/d/0B4eow_YS2Y1eVjFaQV9HRlNCcWM/edit) '' public function edit_svg() { $ this-> load- > library ('ExSimpleXMLElement'); $ file = "images/designs/svg/a.svg"; //http://www.webdeveloper.com/forum/showthread.php?165648-Editing-XML-using-PHP $ xml = simplexml_load_file ($ file); // Charge le fichier. $ this-> exsimplexmlelement-> loadXML ($ xml) '' – Corematrixx

+0

Au lieu de '$ xml = simplexml_load_file ($ file);', utilisez '$ xml = file_get_contents ($ file);'. La méthode 'loadXML' a besoin de xml comme chaîne. – machineaddict

Questions connexes