Foros del Web » Programando para Internet » Javascript »

Recoger datos html

Estas en el tema de Recoger datos html en el foro de Javascript en Foros del Web. Hola: Estoy usando google maps y la carga de datos del mapa desde un archivo kml. Este kml tiene un campo description que es un ...
  #1 (permalink)  
Antiguo 24/05/2010, 09:44
 
Fecha de Ingreso: marzo-2009
Mensajes: 48
Antigüedad: 15 años, 1 mes
Puntos: 0
Recoger datos html

Hola:
Estoy usando google maps y la carga de datos del mapa desde un archivo kml.
Este kml tiene un campo description que es un html. Google maps me lo devuelve como string por lo que lo primero que hago es transformarlo a xml con DOM. Una vez hecho quiero recoger los datos que ahí residen, pero este html sino me equivoco no tiene ningún elemento solo texto, paso a detallar mi codigo y el html que devuelve el kml

function StringtoXML(text){
if (window.ActiveXObject){
var doc=new ActiveXObject('Microsoft.XMLDOM');
doc.async='false';
doc.loadXML(text);
} else {
var parser=new DOMParser();
var doc=parser.parseFromString(text,'text/xml');
}
return doc;
}


var xmlobject = StringtoXML(event.featureData.description);


//En description viene el html que a continuacion listo.

<h4>Datos_google_maps_simple</h4>

<ul>

<li><strong><span>objectid_1</span>:</strong> <span>80</span></li></li>
<li><strong><span>idejemplo</span>:</strong> <span>2002</span></li></li>
<li><strong><span>cadena</span>:</strong> <span>HOLA</span></li></li>
</ul>

Mi intención es recoger el valor 2002 que se corresponde a idejemplo.

En este html existe algún elemento o atributo?? Como recorrer este html para recoger solo lo requerido?

Gracias.
  #2 (permalink)  
Antiguo 24/05/2010, 16:55
 
Fecha de Ingreso: octubre-2006
Mensajes: 18
Antigüedad: 17 años, 7 meses
Puntos: 2
Respuesta: Recoger datos html

Puedes recorrerlo utilizando expresiones regulares, una expresión regular es como un patrón para buscar dentro de cadenas de caracteres, puedes buscar información por 'regex' o expresiones regulares.

No me creas, mira que tengo tiempo que no hago una, pero para buscar ese valor especifico el patrón o expresión regular seria algo como:
Código:
idejemplo.*(\d+)
Eso sólo para que te hagas una idea, que seguro debe tener alguna falla.

Más o menos lo que dice es, busca una cadena que comience por idejemplo que sea seguida por cualquier carácter(.) cero o varias veces(*) hasta encontrar uno o mas(+) dígitos(\d) continuos. Los paréntesis en el ejemplo te permiten luego 'capturar' ese valor encerrado.

No sé exactamente cuales son las clases para expresiones regulares en javascript pero por ahí van los tiros.
  #3 (permalink)  
Antiguo 25/05/2010, 04:40
 
Fecha de Ingreso: marzo-2009
Mensajes: 48
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Recoger datos html

Cita:
Iniciado por jose2c Ver Mensaje
Puedes recorrerlo utilizando expresiones regulares, una expresión regular es como un patrón para buscar dentro de cadenas de caracteres, puedes buscar información por 'regex' o expresiones regulares.

No me creas, mira que tengo tiempo que no hago una, pero para buscar ese valor especifico el patrón o expresión regular seria algo como:
Código:
idejemplo.*(\d+)
Eso sólo para que te hagas una idea, que seguro debe tener alguna falla.

Más o menos lo que dice es, busca una cadena que comience por idejemplo que sea seguida por cualquier carácter(.) cero o varias veces(*) hasta encontrar uno o mas(+) dígitos(\d) continuos. Los paréntesis en el ejemplo te permiten luego 'capturar' ese valor encerrado.

No sé exactamente cuales son las clases para expresiones regulares en javascript pero por ahí van los tiros.
Por ahora lo que he hecho es lo siguiente:

Código:
var resultado=String((texto).match(/idejemplo.*/)).match(/\d+/);
Con eso funciona pero me gustaría poder hacerlo todo con una misma expresion regular. He probado con (?=pattern) siendo en este caso:

Código:
var resultado=texto.match((?=idejemplo.*)\d+);
pero me devuelve null.

Ya he probado multitud de variantes pero nada, no encuentro como acceder al entero.

Código:
texto.match(/idejemplo.*\d+/)
Me devuelve:

idconcello</span>:</strong> <span>27020</span></li></li>

hasta ahí bien, solo queda conseguir el único número que eso devuelve. Por eso mismo he usado aquel código mostrado, pero supongo que abrá alguna expresión regular mejor construída que haga todo eso en un único paso.
  #4 (permalink)  
Antiguo 25/05/2010, 05:30
 
Fecha de Ingreso: marzo-2009
Mensajes: 48
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Recoger datos html

Hola:

Por fin lo he resuelto.

He hecho lo siguiente:

Código:
var patron=/(idejemplo.*\D)(\d+)/;
texto.match(patron);
id=RegExp.$2;
El "." también recoge caracteres numéricos, con \D estoy diciendo que los obvie.

Y va perfecto.

Última edición por celgadis84; 25/05/2010 a las 05:44
  #5 (permalink)  
Antiguo 26/05/2010, 15:21
 
Fecha de Ingreso: octubre-2006
Mensajes: 18
Antigüedad: 17 años, 7 meses
Puntos: 2
Respuesta: Recoger datos html

excelente! ya te decía que la mía no iba a funcionar a la primera.

Etiquetas: html, recoger
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 14:03.