Ver Mensaje Individual
Antiguo 10/05/2005, 17:09   #1
calamaro2
Usuario Activo
 
Fecha de ingreso: 21/feb/2004
Mensajes: 244
calamaro2 está en el buen camino
duda: xml, dom php5

Hola,

Me estoy volviendo loco para hacer algo tan sencillo como abrir un documento xml leer un nodo, añadirle cosas al nodo y sobreescribirlo en el documento. Todo ello usando php5.0.3 Alguien sabe cómo hacerlo?

La única manera que conozco de obtener el nodo que busco es con la funcion getElementByTagName. Pero esto devuevle un NodeList, uséase, un array de DomElement's. Y pese a que la clase DomElement hereda de las clase DomNode, no me deja usar los métodos de clase Node en objetos Element. Vamos que lo que intento hacer es:

Para leer el nodo (realemente obtengo un NodeList con único elemento) uso:

$lista=$dom->getElementByTagName("lo que sea");

como el documento lo he hecho yo sé que esta función me devuelve un array con un único elemento, accedo a él mediente el método item()

$lista->item(0), mi problema es que a esto que supuestamente es un DomElement, que hereda de DomNode no me deja aplicarle funciones como appendChild:

$lista->item(0)->appendChild();

Me dice que no existe el método appendChild en la clase DomElement y sin embargo este método sí lo he usado con DomNode en otras ocasiones. Visto lo visto aquí la herencia no parece tan intuitiva como pueda ser en un lenguaje como Java...¿? Pensé en usar un cast como se hacía en Java, algo así:

(DomNode)($lista->item(0))->appendChild();

Pero no cuela, o en php no se usan cast o se hacen de otra manera.

Alguien sabe otra manera (o esta misma pero bien hecha) para hacer esto que quiero hacer?

Muchas gracias.

Saludos,

calamaro2.
calamaro2 está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir