Foros del Web » Programando para Internet » PHP »

Simple HTML DOM - Nodos

Estas en el tema de Simple HTML DOM - Nodos en el foro de PHP en Foros del Web. Estoy empezando con simple HTML DOM y me esta costando poder identificar cada nodo. Código: <tr> <td class="bandera"> <span class="flag flag-cn"></span> <span class="sub-lang">Chinese</span> </td> <td> ...
  #1 (permalink)  
Antiguo 26/12/2017, 11:35
 
Fecha de Ingreso: enero-2010
Mensajes: 126
Antigüedad: 8 años, 3 meses
Puntos: 2
Simple HTML DOM - Nodos

Estoy empezando con simple HTML DOM y me esta costando poder identificar cada nodo.

Código:
<tr>
<td class="bandera">
	<span class="flag flag-cn"></span>
	<span class="sub-lang">Chinese</span>
</td>

<td>
<a href="http://pagina.hmtl">
<span class="text-muted">texto</span> texto 2 </a>
</td>
<td class="other-cell">
</td>

<td class="subir">
<a href="https://pagina2.hmtl">pickyricky</a></td><td class="download-cell">
<a href="https://www.pagina3.html" class="download">download</a>
</td>

</tr>
y se sigue repitiendo los <tr></tr> con la misma lógica

Yo quiero explorar los nodos, ent:

Código:
foreach($e->find('td span[class=sub-lang]') as $elementDos){	
     if (trim($elementDos->plaintext) == "English" ){	
      y ahora necesito <class="subir>, asociado al <td> *
    }
}

*pero no lo puedo llamar porque no se como identificarlo, ya que no conozco el indice de los tr
$e->find("td", ¿Indice?)

¿como puedo conocer en que indice estoy en "cada momento"?

Gracias.
__________________
Por favor evitar comentarios del estilo "leer el manual...", ya lo hice pero aun tengo dudas, por eso pregunto acá
  #2 (permalink)  
Antiguo 02/01/2018, 11:47
Avatar de alvaro_trewhela  
Fecha de Ingreso: octubre-2012
Ubicación: localhost
Mensajes: 885
Antigüedad: 5 años, 6 meses
Puntos: 103
Respuesta: Simple HTML DOM - Nodos

Que tal esto?

Código PHP:
Ver original
  1. $url = "some.html";
  2. $doc = new DOMDocument;
  3. @$doc->loadHTMLFile($url);
  4.  
  5. $tds = $dom->getElementsByTagName("td");
  6.  
  7.     for($k=0;$k<=$tds->length;$k++){
  8.     $spans = $tds[$k]->getElementsByTagName["spans"];
  9.         for($n=0;$n<$spans->length;$k++){
  10.         $attr = $spans[$n]->getAttribute("sub-lang");
  11.             if($attr == "English"){
  12.             //I don't know about index, but you have $k & $n
  13.             //to do here...
  14.             }
  15.         }
  16.     }

Última edición por alvaro_trewhela; 03/01/2018 a las 04:44



La zona horaria es GMT -6. Ahora son las 13:25.