![]() |
no reconoce propiedad documentElement Hola tengo un xml así Código HTML: $stringxml = '';Código HTML: var markers = xml.documentElement.getElementsByTagName("casa");saben pq? tengo otra alternativa? |
Buenas :-) prueba a acceder directamente sin usar documentElement pues seguramente estará incluido dentro del objeto xml var markers = xml.getElementsByTagName("casa"); alert(markers.length); un saludo :cool: |
pues ya lo habia probado pero nada, no consigo acceder al xml, no se si estará ahi como xml la variable q llega aunq creo q si pq con un alert me lo muestra... Gracias de todas frmas.... |
¿Cómo estás creando al objeto xml? |
bueno lo creo como explike en el 1º postbal principio y la llamada a esa pagina seria así: <script language="javascript"> loadbusqueda(param,'<?php require_once("crearxml.php")?>'); </script> aunq ya lo he probado de otra forma lo tengo en una página aparte para aislar pero nana... gracias d nuevo |
Y qué hay en loadbusqueda() ?? |
pues sería esto.. son funciones de googlemaps, todo funciona hasta q intento leer el xml function loadbusqueda(address,xml) { alert(address); //recibe ok alert(xml); //recibe ok if (GBrowserIsCompatible()) { map = new GMap2(document.getElementById("map")); map.addControl(new GOverviewMapControl()); map.addControl(new GSmallMapControl()); map.addControl(new GMapTypeControl()); geocoder = new GClientGeocoder(); if (geocoder) { geocoder.getLatLng(address,function(point) { map.setCenter(point, 13);}); } var markers = xml.getElementsByTagName("casa"); alert(markers.length); }// si es compatible }//fin funcion |
Bueno, esa función usa otras funciones de google y si no las tienes todas te tirará errores. Hay formas más sencillas para crear un objeto xml con javascript. w3schools propone un código sencillo crossbrowser http://www.w3schools.com/xml/xml_parser.asp el asunto es que es para cargar el xml de un archivo externo y por lo que veo estás cargando el xml como texto enviándolo directamente en el argumento de la función. Aquí encontré un código crossbrowser para cargar el xml desde string, mira si te sirve http://developer.mozilla.org/en/docs...rer_to_Mozilla Adaptándolo a lo que quieres quedaría algo así Código: var myDocument; un saludo :cool: |
hola de nuevo ,y gracias por tu amabilidad lo he probado todo con este XML y aun no he conseguido leer de el, lo he probado tal como me has dicho pero no se pq makers tiene valor 0 aunque el xmlesta ahí.... intentare probar ahora con AJAX creando el xml aunque con pocas esperanzas... dices q lo puedo hacer más sencillo cargando directamente el xml pero no se como... Gracias y un saludo |
Ah, qué despiste, se me olvidó comentarte algo que ví en el código php que genera el xml ... si lo pruebas como xml da error de parseo xml, por eso no te devuelve nada. fíjate Código: $stringxml = '';un saludo :cool: |
muchiiiiisimas gracias tunait, de verdad menudo error de pardillo, como todos los míos jaja, estoy empezadoc con esto de XML, y hay muchas cosas q no ntiendo , x ejemplo este q he hecho se supone bien formado no? pero.... con esta estructura no funciona algo así:: var markers = myDocument.getElementsByTagName("casa"); markers[i].getAttribute("provincia"); ó se debe acceder de otra fora o quizas crear el xml de otra forma asi... <casa provincia="valorprovincia" localidad="valor" /> Gracias de nuevo por todo, de verdad |
Efectivamente. Cuando usas getAttribute se busca un atributo en el elemento y no a uno de sus nodos hijo. getAttribute("provincia") buscará si tiene ese atributo el elemento casa <casa provincia="la provincia"> El problema de definir así todos los valores de lo que pueda tener una casa es que pueden haber valores demasiado largos, por ejemplo si le quieres poner una descripción. Usa el DOM para acceder a esos elementos y busca el valor de los nodos de texto que contienen. Si en markers guardas un elemento casa concreto puedes acceder a los elementos x contenidos en ese elemento casa de la misma forma que referenciaste a casa y al haber uno sólo de cada en cada elemento casa podrás acceder a él usando la posición 0 markers[0].getElementsByTagName('provincia')[0] apunta al elemento provincia del elemento casa con el que estés trabajando. Para saber lo que contiene su nodo de texto accedes a él mediante firstChild.nodeValue Prueba a pedirle una alerta de Código: markers[0].getElementsByTagName('provincia')[0].firstChild.nodeValue |
muchas gracias de nuevo iba a postear para decirte q ya habia encontrado la soluccion pero te me has adelantado,, ahora me keda pelear con googlemaps ....un saludo... |
Estupendo :arriba: y suerte en tu pelea con googlemaps :cool: |
| La zona horaria es GMT -6. Ahora son las 20:54. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.