Foros del Web » Programando para Internet » PHP »

Problema con HTML_entity y DOM

Estas en el tema de Problema con HTML_entity y DOM en el foro de PHP en Foros del Web. Hola Tengo un problema con este pedazo de código Código: $file = file("http://cualquier pagina.htm"); (aclarando que la página de arriba contiene en las líneas buscadas ...
  #1 (permalink)  
Antiguo 25/02/2010, 18:39
 
Fecha de Ingreso: diciembre-2006
Ubicación: Lima
Mensajes: 35
Antigüedad: 17 años, 4 meses
Puntos: 0
Exclamación Problema con HTML_entity y DOM

Hola
Tengo un problema con este pedazo de código

Código:
$file = file("http://cualquier pagina.htm");

(aclarando que la página de arriba contiene en las líneas buscadas un formulario con los objetos input y todo lo que busco con este código)

$suma = "";
for ( $i = 10 ; $i < 29 ; $i ++) {
   $suma = "$suma$file[$i]";
   $lineas = $suma;
}
$decode_lines = html_entity_decode($lineas, ENT_NOQUOTES, 'UTF-8');
echo "$decode_lines <br> \n";
$doc = new DOMDocument();
$doc->loadHTML($decode_lines);
$tag = $doc->getElementsByTagName('option');
$stags = $tag->getAttribute('selected');
switch ($stags) {
    case "selected":
        $fvalue = $tag->nodeValue;
        echo "$fvalue encontrado <br> \n";
        break;
}
Lo que se supone que debería hacer ese código es leer el archivo HTML
sacar las líneas de la 10 a la 28
unirlas en una variable
luego cambiar los códigos que usa HTML para los caracteres especiales y cambiarlos a la codificación UTF-8 en su caracter equivalente
luego empieza el problema con DOM se supone que con lo que sigue en el código
una variable toma el valor del tag que cumpla con las condiciones
las imprime y listo
pero no imprime nada y arroja estos errores

Cita:
Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Unexpected end tag : td in Entity, line: 20 in C:\Inetpub\wwwroot\info.php on line 33

Fatal error: Call to undefined method DOMNodeList::getAttribute() in C:\Inetpub\wwwroot\info.php on line 35
No veo cuál es el error
espero me puedan ayudar
Gracias
  #2 (permalink)  
Antiguo 25/02/2010, 19:03
Avatar de camsworksinc  
Fecha de Ingreso: julio-2008
Ubicación: Queretaro
Mensajes: 261
Antigüedad: 15 años, 9 meses
Puntos: 11
Respuesta: Problema con HTML_entity y DOM

Lastima que no pones la pagina que estas leyendo, porque al parecer, a dicha pagina le falta un terminador de celda </td> en algun lado, y por tanto, no se puede cargar correctamente el DOM.
__________________
¡Malditas computadoras que siempre hacen lo que les DIGO que hagan, no lo que QUIERO que hagan!
  #3 (permalink)  
Antiguo 25/02/2010, 20:03
 
Fecha de Ingreso: diciembre-2006
Ubicación: Lima
Mensajes: 35
Antigüedad: 17 años, 4 meses
Puntos: 0
Exclamación Respuesta: Problema con HTML_entity y DOM

Pues en efecto el primer error se debia a que al contenido que tenia la variable le faltaban dos tags <td> asi que solucioné eso pero sigue apareciendo este error:

Fatal error: Call to undefined method DOMNodeList::getAttribute() in C:\Inetpub\wwwroot\info.php on line 35

Este es el pedazo de código php que arroja ese error:

Código:
<?php
$file = file("http://cualquier pagina.htm");
$suma = "";
for ( $i = 10 ; $i < 29 ; $i ++) {
   $suma = "$suma$file[$i]";
   $lineas = $suma;
}
$decode_lines = html_entity_decode($lineas, ENT_NOQUOTES, 'UTF-8');
echo "$decode_lines <br> \n";
$doc = new DOMDocument();
$doc->loadHTML($decode_lines);
$tag = $doc->getElementsByTagName('option');
$stags = $tag->getAttribute('selected');
switch ($stags) {
    case "selected":
        $fvalue = $tag->nodeValue;
        echo "$fvalue encontrado <br> \n";
        break;
}
?>
Bueno este es la estructura del contenido con el que trabaja la variable luego de haber leído la página HTML

Código:
	<option value="SelectOption">Select any Option</option>
	<option value="id1">Valor1</option>
	<option value="id2">Valor2</option>
	<option value="id3">Valor3</option>
	<option value="id4">Valor4</option>
	<option value="id5">Valor5</option>
	<option selected="selected" value="Valor5">Option Selected/option>
 <br>
espero que con esto me puedan decir por qué esta fallando

Gracias

Etiquetas: dom
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:40.