Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Extraer el Id de un elemento

Estas en el tema de Extraer el Id de un elemento en el foro de Javascript en Foros del Web. Wenas a tod@s! Estoy parseando una web y estoy estancado en un punto. Necesito obtener el Id de una tabla para poder parsear dentro de ...
  #1 (permalink)  
Antiguo 08/08/2014, 14:40
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 9 años, 9 meses
Puntos: 30
Extraer el Id de un elemento

Wenas a tod@s!

Estoy parseando una web y estoy estancado en un punto. Necesito obtener el Id de una tabla para poder parsear dentro de esa tabla ya que hay muchas y cada una con su Id.

no se me ocurre nada para que con el siguiente código lo obtenga:
Código Javascript:
Ver original
  1. <script>document.getElementsByTagName('table')[0].id;</script>

Todos sabemos que ese código va bien en el caso que sea para obtener el id de la misma web donde está el código, la dificultad está en que estamos hablando de sacar ese id de OTRA web.
  #2 (permalink)  
Antiguo 09/08/2014, 05:01
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Extraer el Id de un elemento

para eso tienes la clase dom de php
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 09/08/2014, 08:20
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 9 años, 9 meses
Puntos: 30
Respuesta: Extraer el Id de un elemento

ostras! no pensaba en php, voy a estudiar esa clase. Gracias.
  #4 (permalink)  
Antiguo 12/08/2014, 00:57
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 9 años, 9 meses
Puntos: 30
Respuesta: Extraer el Id de un elemento

Cita:
Iniciado por IsaBelM Ver Mensaje
para eso tienes la [URL="http://php.net/manual/es/book.dom.php"]clase dom de php[/URL]
He estado mirando la clase Dom de php. Al ser la primera vez utilizándo la clase no sé dónde está el fallo.

El código:
Código PHP:
Ver original
  1. $dom = new domDocument();
  2.     $htmlCode = file_get_contents('web.htm');
  3.  
  4.     $dom->loadHTML($htmlCode);
  5.     $tables = $dom->getElementsByTagName('table');
  6.     foreach($tables as $node) {
  7.         $valueID = $node->getAttribute('ID');
  8.         $lista[] = $valueID;
  9.     }
  10.     print_r($lista);
Aparentemente no hay ningún problema pero a la hora de imprimir el array generado me muestra 87 registros vacíos, es decir que ha detectado 87 tablas pero no ha podido sacar ninguna id.
  #5 (permalink)  
Antiguo 12/08/2014, 07:43
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Extraer el Id de un elemento

fíjate en las diferencias
Cita:
$dom = new \DOMDocument();
libxml_use_internal_errors(true);

$dom->loadHTMLFile("http://www.forosdelweb.com/f13/extraer-id-elemento-1106217/");
$tables = $dom ->getElementsByTagName('table');
foreach ($tables as $node) {
$valueID = $node->attributes->getNamedItem("id")->value;
$lista[] = $valueID;
}
print_r($lista);
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #6 (permalink)  
Antiguo 12/08/2014, 12:39
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 9 años, 9 meses
Puntos: 30
Respuesta: Extraer el Id de un elemento

Cita:
Iniciado por IsaBelM Ver Mensaje
para eso tienes la [URL="http://php.net/manual/es/book.dom.php"]clase dom de php[/URL]
Buff!!! Error de pardillo!! Que verguenza!!

Si te fijas en el código que te compartí, en la linea...
Código PHP:
Ver original
  1. $valueID = $node->getAttribute('ID');

El atributo id está en mayúscula... por eso no encontraba nada!!

De todas formas las dos maneras me han funcionado!! Muchisimas gracias de todas formas por enseñarme el camino del DOM, lo estoy aprendiendo full para utilizarlo más a menudo.

Un saludo

Etiquetas: elemento
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 16:47.