Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Infierno DOM xml

Estas en el tema de Infierno DOM xml en el foro de Frameworks y PHP orientado a objetos en Foros del Web. hello there folks ;) a ver, alguien tiene idea de como utilizar la api DOM xml de php?? es qe la documentacion en php.net es ...
  #1 (permalink)  
Antiguo 21/12/2008, 11:56
Avatar de anlhp  
Fecha de Ingreso: agosto-2008
Mensajes: 121
Antigüedad: 15 años, 8 meses
Puntos: 1
Exclamación Infierno DOM xml

hello there folks ;)
a ver, alguien tiene idea de como utilizar la api DOM xml de php?? es qe la documentacion en php.net es un poco pobre y los ejemplos qe ponen ninguno me funciona, segun mi phpinfo() tengo esta api activada y deberia funcionar, pero lo siguiente no funciona:

Código PHP:
$doc domxml_new_doc("1.0");
$raiz $doc->create_element("HTML");
$raiz $doc->append_child($raiz);
$cabecera $doc->create_element("HEAD");
$cabecera $raiz->append_child($cabecera);
$titulo $doc->create_element("TITLE");
$titulo $cabecera->append_child($titulo);
$texto $doc->create_text_node("created with DOM xml API");
$texto $titulo->append_child($texto);
echo 
"<PRE>";
echo 
htmlentities($doc->dump_mem(true));
echo 
"</PRE>"
y arroja los siguientes errores:

Warning: domnode::append_child() expects parameter 1 to be object, null given in C:\Documents and Settings\anler\Mis documentos\Sitios\galeria\public\Labs\prueba.php

Fatal error: Call to a member function append_child() on a non-object in C:\Documents and Settings\anler\Mis documentos\Sitios\galeria\public\Labs\prueba.php


en cambio este qe hice creando explicitamente las clases si qe me funciona

Código PHP:
$doc domxml_new_doc("1.0");
$raiz = new DOMElement('html');
$cabecera = new DOMElement('head');
$titulo = new DOMElement('title');
$titulo->append_child(new DOMText('created with DOM xml API'));
$cabecera->append_child($titulo);
$raiz->append_child($cabecera);
$doc->append_child($raiz);
echo 
"<PRE>";
echo 
htmlentities($doc->dump_mem(true));
echo 
"</PRE>"
y al final no se tios, estoy haciendo las cosas por intuicion pero me molesta ver que lo que encuentro en la ayuda de php no me sirve y no saber por que me estresa
  #2 (permalink)  
Antiguo 21/12/2008, 17:45
 
Fecha de Ingreso: octubre-2008
Mensajes: 40
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Infierno DOM xml

usa las funciones de simple xml que es el mas sencillo si vas a a leer un documento xml y usa las funciones de escritura de ficheros para crear ficheros xml
  #3 (permalink)  
Antiguo 21/12/2008, 18:03
Avatar de anlhp  
Fecha de Ingreso: agosto-2008
Mensajes: 121
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Infierno DOM xml

el problema es que mi proyecto conlleva mutar el arbol xml en cualquier seccion y no se, pero le he dado vueltas y tratar de hacer eso con un parseador de estos ligeritos como que es un dolor de huevosss XD
  #4 (permalink)  
Antiguo 10/01/2009, 09:34
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Infierno DOM xml

Que version de PHP estas usando??

te lo comento porque segun lo que veo entu codigo usas domxml, si usas la version de PHP 5 este trae XML integrado de forma nativa por lo que no debes usar domxml por lo que debes desactivar esta funcion en el php.ini o usando WAMP

<?php
//CODIGO para PHP5
$doc = new DOMDocument();
$doc->load('article.xml');
$root = $doc->documentElement;
$node = $root->firstChild;

while ($node) {
if (($node->nodeType == XML_ELEMENT_NODE) &&
($node->nodeName == 'name')) {
$content = $node->firstChild;
$output = $content->nodeValue;
print "Output: $output
";
break;
}
$node = $node->nextSibling;
}
?>
  #5 (permalink)  
Antiguo 10/01/2009, 12:57
Avatar de anlhp  
Fecha de Ingreso: agosto-2008
Mensajes: 121
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Infierno DOM xml

hmmm, pues lo mirare y te digo!! joe que me ha costao conseguir que alguien me diga algo al respecto, en todos lados me dicen o que use un parseador (cosa nada aconsejable cuando se trata de crear y modificar arboles DOM) o que la api es experimental que no se que bla bla bla jejeje, ohe nada, gracias tio, lo miro y ya te cuento ;)
  #6 (permalink)  
Antiguo 14/01/2009, 06:10
Avatar de anlhp  
Fecha de Ingreso: agosto-2008
Mensajes: 121
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Infierno DOM xml

pues na, igual, lo mismo que me pasaba, cuando trato de usar:

$xml = new DOMDocument();

me lanza el siguiente warning:
Warning: domdocument::domdocument() expects at least 1 parameter, 0 given in C:\xampp\htdocs\galery\public\admin\pruebas.php on line 28

y cuando trato de utilizar load() este otro
Fatal error: Call to undefined method domdocument::load() in C:\xampp\htdocs\galery\public\admin\pruebas.php on line 29

he desactivado la directiva domxml en php.ini y reiniciado el server y sigue igual :(
  #7 (permalink)  
Antiguo 14/01/2009, 09:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Infierno DOM xml

Descomenta la linea de tu php.ini, pero no quites el DLL, es un bug al parecer, lee esto:
Cita:
If you use PHP 5 in windows, you don't need to declare
php_domxml.dll in your php.ini file.
so u can give comment in the line php_domxml.dll in your
php.ini file.
you only need to comment it out, but do not delete the
php_domxml.dll file in the ext directory.
Saludos
  #8 (permalink)  
Antiguo 14/01/2009, 09:52
Avatar de anlhp  
Fecha de Ingreso: agosto-2008
Mensajes: 121
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Infierno DOM xml

eso fue lo que hice :s solo la comente y salve y eso, tal parece que aun comentandola lo dejaba activado porque los warnings esos me salian igual cuando esta 'descomentada' la linea
  #9 (permalink)  
Antiguo 14/01/2009, 09:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Infierno DOM xml

Mmm tienes el Zend Optimizer activado?
  #10 (permalink)  
Antiguo 14/01/2009, 11:52
Avatar de anlhp  
Fecha de Ingreso: agosto-2008
Mensajes: 121
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Infierno DOM xml

esto es lo que me dice:

Zend Optimizer
Optimization Pass 1 enabled
Optimization Pass 2 enabled
Optimization Pass 3 enabled
Optimization Pass 4 enabled
Optimization Pass 9 disabled
Zend Loader disabled
License Path no value
Obfuscation level 0
  #11 (permalink)  
Antiguo 14/01/2009, 13:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Infierno DOM xml

Desactivalo y ve si se arregla el error.

Saludos
  #12 (permalink)  
Antiguo 15/01/2009, 05:11
Avatar de anlhp  
Fecha de Ingreso: agosto-2008
Mensajes: 121
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Infierno DOM xml

:( me sigue igual, no se que es esto, aunque bueno, pa desactivar el zend lo que hice fue comentar todas las lineas de la seccion [zend], es asi?
  #13 (permalink)  
Antiguo 15/01/2009, 09:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Infierno DOM xml

Asi es, con eso desactivas el optimizer, es muy raro lo que te ocasiona, que version de PHP manejas? Trata de actualizar a la ultima.

Saludos.
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 04:35.