Cita:
Iniciado por jackson666
Código PHP:
<?php
$html='tuArchivo.htm';
$dom=new DOMDocument();
$dom->load($html);
$tags=$dom->getElementsByTagName("div");
foreach($tags as $t=>$v){
for($i=0;$i<count($v);$i++){
echo $tags->item($t)->nodeValue."<br />";
}
}
?>
Eso te deberia imprimir todos los nodos de texto dentro de los divs
He probado hacerlo como me indicas pero sigue arrojando errores, y sino estoy equivocado es porque el código de la web no es XHTML válido. Lo cual si esto es cierto y solo funciona con XHTML válido lo llevo claro, ya que las webs que quiero parsear no son mias, estan en la red y no puedo modificar el código... sino que gracia.
HTML
Código HTML:
Ver original<div class="otro_contenedor">
<div class="miniTabsContent"> <img src="#" alt="" title="" width="68" height="68"> <p class="date">13.12.2009
</p> <p class="pollQuestion">¿Pregunta encuesta?
</p> <form action="votarencuesta" method="post" name="votacionForm" id="a3poll" onsubmit="javascript:{if ( hasCookie('haVotado') ) {alert('Tu voto ya ha sido registrado'); return false; } else {return validateVotacionForm(this)};}"> <input name="9287452" value="9287452" type="hidden"> <input name="contenido" value="0" type="hidden"> <input name="respuesta" value="9287451" id="question1" type="radio">No
<input name="respuesta" value="9287450" id="question2" type="radio">Sí
<div><input value="VOTAR" type="submit"><a href="#" class="normaLink">Ver resultados
</a></div>
</div> <!-- fin otro_contenedor --> </div> <!-- fin contenedor -->
PARSER
Código PHP:
Ver original<?php
$html='web.htm';
$dom=new DOMDocument();
$dom->load($html);
$tags=$dom->getElementsByTagName("div");
foreach($tags as $t=>$v){
for($i=0;$i<count($v);$i++){ echo $tags->item($t)->nodeValue."<br />";
}
}
?>
ERRORES
Código:
Warning: DOMDocument::load() [function.DOMDocument-load]: Opening and ending tag mismatch: input line 22 and label in file:///C%3A/AppServ/www/00-laboratorio_test/secciones/HTML_parser/web.htm, line: 23 in C:\AppServ\www\00-laboratorio_test\secciones\HTML_parser\HTML_parser.php on line 4
Warning: DOMDocument::load() [function.DOMDocument-load]: Opening and ending tag mismatch: input line 25 and label in file:///C%3A/AppServ/www/00-laboratorio_test/secciones/HTML_parser/web.htm, line: 26 in C:\AppServ\www\00-laboratorio_test\secciones\HTML_parser\HTML_parser.php on line 4
Warning: DOMDocument::load() [function.DOMDocument-load]: Opening and ending tag mismatch: input line 27 and div in file:///C%3A/AppServ/www/00-laboratorio_test/secciones/HTML_parser/web.htm, line: 27 in C:\AppServ\www\00-laboratorio_test\secciones\HTML_parser\HTML_parser.php on line 4
Warning: DOMDocument::load() [function.DOMDocument-load]: Opening and ending tag mismatch: div line 27 and form in file:///C%3A/AppServ/www/00-laboratorio_test/secciones/HTML_parser/web.htm, line: 28 in C:\AppServ\www\00-laboratorio_test\secciones\HTML_parser\HTML_parser.php on line 4
Warning: DOMDocument::load() [function.DOMDocument-load]: Opening and ending tag mismatch: label line 24 and div in file:///C%3A/AppServ/www/00-laboratorio_test/secciones/HTML_parser/web.htm, line: 29 in C:\AppServ\www\00-laboratorio_test\secciones\HTML_parser\HTML_parser.php on line 4
Warning: DOMDocument::load() [function.DOMDocument-load]: Opening and ending tag mismatch: label line 21 and div in file:///C%3A/AppServ/www/00-laboratorio_test/secciones/HTML_parser/web.htm, line: 31 in C:\AppServ\www\00-laboratorio_test\secciones\HTML_parser\HTML_parser.php on line 4
Warning: DOMDocument::load() [function.DOMDocument-load]: Opening and ending tag mismatch: input line 20 and div in file:///C%3A/AppServ/www/00-laboratorio_test/secciones/HTML_parser/web.htm, line: 33 in C:\AppServ\www\00-laboratorio_test\secciones\HTML_parser\HTML_parser.php on line 4
Warning: DOMDocument::load() [function.DOMDocument-load]: Opening and ending tag mismatch: input line 19 and div in file:///C%3A/AppServ/www/00-laboratorio_test/secciones/HTML_parser/web.htm, line: 34 in C:\AppServ\www\00-laboratorio_test\secciones\HTML_parser\HTML_parser.php on line 4
Warning: DOMDocument::load() [function.DOMDocument-load]: Opening and ending tag mismatch: form line 18 and body in file:///C%3A/AppServ/www/00-laboratorio_test/secciones/HTML_parser/web.htm, line: 35 in C:\AppServ\www\00-laboratorio_test\secciones\HTML_parser\HTML_parser.php on line 4
Warning: DOMDocument::load() [function.DOMDocument-load]: Opening and ending tag mismatch: img line 15 and html in file:///C%3A/AppServ/www/00-laboratorio_test/secciones/HTML_parser/web.htm, line: 36 in C:\AppServ\www\00-laboratorio_test\secciones\HTML_parser\HTML_parser.php on line 4
Warning: DOMDocument::load() [function.DOMDocument-load]: Premature end of data in tag div line 14 in file:///C%3A/AppServ/www/00-laboratorio_test/secciones/HTML_parser/web.htm, line: 36 in C:\AppServ\www\00-laboratorio_test\secciones\HTML_parser\HTML_parser.php on line 4
Warning: DOMDocument::load() [function.DOMDocument-load]: Premature end of data in tag div line 12 in file:///C%3A/AppServ/www/00-laboratorio_test/secciones/HTML_parser/web.htm, line: 36 in C:\AppServ\www\00-laboratorio_test\secciones\HTML_parser\HTML_parser.php on line 4
Warning: DOMDocument::load() [function.DOMDocument-load]: Premature end of data in tag div line 4 in file:///C%3A/AppServ/www/00-laboratorio_test/secciones/HTML_parser/web.htm, line: 36 in C:\AppServ\www\00-laboratorio_test\secciones\HTML_parser\HTML_parser.php on line 4
Warning: DOMDocument::load() [function.DOMDocument-load]: Premature end of data in tag div line 3 in file:///C%3A/AppServ/www/00-laboratorio_test/secciones/HTML_parser/web.htm, line: 36 in C:\AppServ\www\00-laboratorio_test\secciones\HTML_parser\HTML_parser.php on line 4
Warning: DOMDocument::load() [function.DOMDocument-load]: Premature end of data in tag body line 2 in file:///C%3A/AppServ/www/00-laboratorio_test/secciones/HTML_parser/web.htm, line: 36 in C:\AppServ\www\00-laboratorio_test\secciones\HTML_parser\HTML_parser.php on line 4
Warning: DOMDocument::load() [function.DOMDocument-load]: Premature end of data in tag html line 1 in file:///C%3A/AppServ/www/00-laboratorio_test/secciones/HTML_parser/web.htm, line: 36 in C:\AppServ\www\00-laboratorio_test\secciones\HTML_parser\HTML_parser.php on line 4
Gracias de antemano!