Ver Mensaje Individual
  #10 (permalink)  
Antiguo 14/12/2009, 14:24
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Respuesta: Como parsear este HTML

Cita:
Iniciado por jackson666 Ver Mensaje
Podria usar la clase DOMDocument para manipular el HTML. Buscala en php.net
Con DOMDocument lo estaba intentando pero no consigo que funcione, me peta por todos lados.

CODIGO
Código PHP:
Ver original
  1. <?php
  2.  
  3. $html = '
  4. <html>
  5. <body>
  6. <div class="contenedor">
  7. <div class="otro_contenedor>
  8.     <div class="aaaa">
  9.     <p>aaaaaaaaaaaaaaa</p>
  10.     </div>
  11.     <div class="bbbb">
  12.     <p>bbbbbbbbbbbbb</p>
  13.     </div>
  14.  
  15.     <div class="miniTabsContent">
  16.         <div class="polltop1"><h3>Encuesta</h3></div>
  17.         <div class="pollmiddle">
  18.         <img src="#" alt="" title="" width="68" height="68">
  19.         <p class="date">13.12.2009</p>
  20.         <p class="pollQuestion">¿Pregunta encuesta?</p>  
  21.         <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)};}">
  22.             <input name="encuesta" value="9287452" type="hidden">
  23.             <input name="contenido" value="0" type="hidden">
  24.             <label for="question1">
  25.                 <input name="respuesta" value="9287451" id="question1" type="radio">No
  26.             </label>
  27.             <label for="question2">
  28.                 <input name="respuesta" value="9287450" id="question2" type="radio">Sí
  29.             </label>
  30.             <div><input value="VOTAR" type="submit"><a href="#" class="normaLink">Ver resultados</a></div>
  31.         </form>
  32.         </div>
  33.         <div class="pollbot1"></div>
  34.     </div>
  35.    
  36. </div> <!-- fin otro_contenedor -->
  37. </div> <!-- fin contenedor -->
  38. </body>
  39. </html>
  40. ';
  41.    
  42.     /*** a new dom object ***/
  43.     $dom = new domDocument;
  44.  
  45.     /*** load the html into the object ***/
  46.     $dom->loadHTML($html);
  47.  
  48.     /*** discard white space ***/
  49.     $dom->preserveWhiteSpace = false;
  50.  
  51.     $encuesta = $dom->getElementsByTagName('miniTabsContent');
  52.  
  53.     echo $encuesta->item(0);
  54.     $rows = $encuesta->item(0)->getElementsByTagName('div');
  55.  
  56. ?>

ERRORES
Código:
Warning: DOMDocument::loadHTML() [function.DOMDocument-loadHTML]: error parsing attribute name in Entity, line: 6 in C:\AppServ\www\00-laboratorio_test\secciones\HTML_parser.php on line 47

Warning: DOMDocument::loadHTML() [function.DOMDocument-loadHTML]: error parsing attribute name in Entity, line: 19 in C:\AppServ\www\00-laboratorio_test\secciones\HTML_parser.php on line 47

Warning: DOMDocument::loadHTML() [function.DOMDocument-loadHTML]: error parsing attribute name in Entity, line: 19 in C:\AppServ\www\00-laboratorio_test\secciones\HTML_parser.php on line 47

Warning: DOMDocument::loadHTML() [function.DOMDocument-loadHTML]: error parsing attribute name in Entity, line: 19 in C:\AppServ\www\00-laboratorio_test\secciones\HTML_parser.php on line 47

Warning: DOMDocument::loadHTML() [function.DOMDocument-loadHTML]: error parsing attribute name in Entity, line: 19 in C:\AppServ\www\00-laboratorio_test\secciones\HTML_parser.php on line 47

Warning: DOMDocument::loadHTML() [function.DOMDocument-loadHTML]: error parsing attribute name in Entity, line: 19 in C:\AppServ\www\00-laboratorio_test\secciones\HTML_parser.php on line 47

Warning: DOMDocument::loadHTML() [function.DOMDocument-loadHTML]: error parsing attribute name in Entity, line: 19 in C:\AppServ\www\00-laboratorio_test\secciones\HTML_parser.php on line 47

Warning: DOMDocument::loadHTML() [function.DOMDocument-loadHTML]: error parsing attribute name in Entity, line: 19 in C:\AppServ\www\00-laboratorio_test\secciones\HTML_parser.php on line 47

Warning: DOMDocument::loadHTML() [function.DOMDocument-loadHTML]: error parsing attribute name in Entity, line: 19 in C:\AppServ\www\00-laboratorio_test\secciones\HTML_parser.php on line 47

Warning: DOMDocument::loadHTML() [function.DOMDocument-loadHTML]: Unexpected end tag : div in Entity, line: 35 in C:\AppServ\www\00-laboratorio_test\secciones\HTML_parser.php on line 47

Fatal error: Call to a member function getElementsByTagName() on a non-object in C:\AppServ\www\00-laboratorio_test\secciones\HTML_parser.php on line 57
Gracias de antemano!