Foros del Web » Programando para Internet » PHP »

Añadir varios atributos a un mismo nodo, simpleXML

Estas en el tema de Añadir varios atributos a un mismo nodo, simpleXML en el foro de PHP en Foros del Web. Hola a todos, Estoy con un fichero XML para modificarlo con php con simpleXML. En principio consiguo crear el archivo, añadirle un nodo e incluso ...
  #1 (permalink)  
Antiguo 23/07/2008, 13:10
 
Fecha de Ingreso: mayo-2008
Mensajes: 21
Antigüedad: 11 años, 6 meses
Puntos: 0
Pregunta Añadir varios atributos a un mismo nodo, simpleXML

Hola a todos,
Estoy con un fichero XML para modificarlo con php con simpleXML. En principio consiguo crear el archivo, añadirle un nodo e incluso un atributo, pero el problema viene cuando quiero añadir dos atributos al mismo nodo. EL codigo que tengo es el siguiente (sobre el archivo xml ya creado):
$imagen = $xmlstr->addChild('imagen');
$xmlstr->$imagen->addAttribute("foto","foto.jpg");
Y quiero crear un nodo de este tipo: <imagen foto="foto.jpg" comentario="hola"/>
Estoy buscando por la web y no encuentro nada.

Muchas gracias!
  #2 (permalink)  
Antiguo 20/01/2009, 12:43
 
Fecha de Ingreso: abril-2006
Mensajes: 320
Antigüedad: 13 años, 7 meses
Puntos: 63
Respuesta: Añadir varios atributos a un mismo nodo, simpleXML

revivo el psot por q yo estaba con al duda y bueno despeus de bscuar por 3 dias lo posteo aca lo q encontre
Cita:
Añadir varios atributos a un mismo nodo, simpleXML
Hola a todos,
Estoy con un fichero XML para modificarlo con php con simpleXML. En principio consiguo crear el archivo, añadirle un nodo e incluso un atributo, pero el problema viene cuando quiero añadir dos atributos al mismo nodo. EL codigo que tengo es el siguiente (sobre el archivo xml ya creado):
$imagen = $xmlstr->addChild('imagen');
$xmlstr->$imagen->addAttribute("foto","foto.jpg");
Y quiero crear un nodo de este tipo: <imagen foto="foto.jpg" comentario="hola"/>
Estoy buscando por la web y no encuentro nada.

Muchas gracias!
yo encontre la solucion solo basta en poner otro addAttribute

tu codigo quedaria asi
Código PHP:
<?php
$imagen 
$xmlstr->addChild('imagen');
$imagen->addAttribute("foto","foto.jpg");
$imagen->addAttribute("comentario","este atributo ta perfecto");
$xmlstr->$imagen

?>
otra soluciion para serlo mas atractivo es extender la clase como yo lo hice y aun me falta pruebas
Código PHP:
<?php
class my_xml extends SimpleXMLElement 
{
    public function 
addAttrib($name,$value,$namespace null)
    {
        
$this->addAttribute($name,$value,$namespace);

        return 
$this;
/*el return $this es para ahorrarnos uasn cuantas lineas*/
    
}
    public function 
addAttribs($attribs_array = arraY())
        {
        foreach(
$attribs_array as $name => $value)
        {
            
$this->addAttribute($name,$value);
        }  
    }
}

$myxml = new my_xml("<xml></xml>",true,false);
$child_tag $myxml->addChild("author");
$child_tag->addAttribs(array("nombre"=>"juan perez","edad" => "13"));
$myxml->comentario->$child_tag;

$foto $myxml->addChild("foto","descripcion de esta foto es un mu rostro");
$foto->addAttrib("url","http://google.com/img_logo.gif")->addAttrib("alt","esta e s mi foto");
$myxml->fotos->$foto;
echo 
$myxml->asXml();

?>
lo unico q me gustaria saber es como identar el xml q parsea el simplexml ya q todo lo aes muy junto ye s ilegible a la vista para el hombre
se q el psot es viejo pero a mi me pico al curiosidad de a´rsear xml ejeje jeuguen con lso atributos yya casi todos los servers soportan php5 osea es seguro q tara implementado
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:43.