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);
merci pour reponder machineaddict – Corematrixx
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
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