Foros del Web » Programación para mayores de 30 ;) » Programación General »

no reconoce propiedad documentElement

Estas en el tema de no reconoce propiedad documentElement en el foro de Programación General en Foros del Web. Hola tengo un xml así Código HTML: $stringxml = ''; $stringxml .= ' <?xml version= "1.0" encoding= "UTF-8" standalone= "yes" ?> '; $stringxml .= ' ...
  #1 (permalink)  
Antiguo 21/11/2006, 05:02
Avatar de yesik  
Fecha de Ingreso: octubre-2004
Ubicación: Orense
Mensajes: 292
Antigüedad: 19 años, 7 meses
Puntos: 1
no reconoce propiedad documentElement

Hola tengo un xml así
Código HTML:
		$stringxml = '';
		$stringxml .= '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
		$stringxml .= '<?xml-stylesheet type="text/xsl" href="copy.xsl"?>';
		$stringxml .= '<dxml>';

								for($i=0; $i < count($encontrados_casa); $i++)
									{
        $stringxml .= '  <casa>';
		$stringxml .= '     <provincia>'.$encontrados_casa[$i]['Provincia'].'</provincia>';
		$stringxml .= '     <poblacion>'.$encontrados_casa[$i]['Localidad'].'</poblacion>';
		$stringxml .= '     <coorx>'.$encontrados_casa[$i]['COORX'].'</coorx>';
		$stringxml .= '     <cory>'.$encontrados_casa[$i]['COORY'].'</coory>';
		$stringxml .= '  </casa>';
que recibo perfectamente incluso muestro en un alert y esta correcto, el problema esta al intentar acceder a sus elementos, lo estoy intentando asì
Código HTML:
			var markers = xml.documentElement.getElementsByTagName("casa");
			alert(markers.length);
pero no lo consigo
saben pq? tengo otra alternativa?
__________________
Inmuebles de Galicia:: www.inmueblevirtual.net
Compartir piso Galicia:: www.inmueblevirtual.net/foro
  #2 (permalink)  
Antiguo 21/11/2006, 05:19
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
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
  #3 (permalink)  
Antiguo 21/11/2006, 05:25
Avatar de yesik  
Fecha de Ingreso: octubre-2004
Ubicación: Orense
Mensajes: 292
Antigüedad: 19 años, 7 meses
Puntos: 1
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....
__________________
Inmuebles de Galicia:: www.inmueblevirtual.net
Compartir piso Galicia:: www.inmueblevirtual.net/foro
  #4 (permalink)  
Antiguo 21/11/2006, 05:28
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
¿Cómo estás creando al objeto xml?
  #5 (permalink)  
Antiguo 21/11/2006, 05:32
Avatar de yesik  
Fecha de Ingreso: octubre-2004
Ubicación: Orense
Mensajes: 292
Antigüedad: 19 años, 7 meses
Puntos: 1
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
__________________
Inmuebles de Galicia:: www.inmueblevirtual.net
Compartir piso Galicia:: www.inmueblevirtual.net/foro
  #6 (permalink)  
Antiguo 21/11/2006, 05:37
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Y qué hay en loadbusqueda() ??
  #7 (permalink)  
Antiguo 21/11/2006, 05:42
Avatar de yesik  
Fecha de Ingreso: octubre-2004
Ubicación: Orense
Mensajes: 292
Antigüedad: 19 años, 7 meses
Puntos: 1
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
__________________
Inmuebles de Galicia:: www.inmueblevirtual.net
Compartir piso Galicia:: www.inmueblevirtual.net/foro
  #8 (permalink)  
Antiguo 21/11/2006, 07:03
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
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; 
xmlString = '<? require_once("crearxml.php"); ?>'


  if (document.implementation.createDocument){ 
    // Mozilla, create a new DOMParser 
    var parser = new DOMParser(); 
    myDocument = parser.parseFromString(xmlString, "text/xml"); 
  } else if (window.ActiveXObject){ 
    // Internet Explorer, create a new XML document using ActiveX 
    // and use loadXML as a DOM parser. 
    myDocument = new ActiveXObject("Microsoft.XMLDOM"); 
    myDocument.async="false"; 

    myDocument.loadXML(xmlString);
  }
  var markers = myDocument.getElementsByTagName("casa");
alert(markers.length);
Mira a ver si así te sirve

un saludo
  #9 (permalink)  
Antiguo 21/11/2006, 09:31
Avatar de yesik  
Fecha de Ingreso: octubre-2004
Ubicación: Orense
Mensajes: 292
Antigüedad: 19 años, 7 meses
Puntos: 1
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
__________________
Inmuebles de Galicia:: www.inmueblevirtual.net
Compartir piso Galicia:: www.inmueblevirtual.net/foro
  #10 (permalink)  
Antiguo 21/11/2006, 10:47
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
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 = '';
		$stringxml .= '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
		$stringxml .= '<?xml-stylesheet type="text/xsl" href="copy.xsl"?>';
		$stringxml .= '<dxml>';

								for($i=0; $i < count($encontrados_casa); $i++)
									{
        $stringxml .= '  <casa>';
		$stringxml .= '     <provincia>'.$encontrados_casa[$i]['Provincia'].'</provincia>';
		$stringxml .= '     <poblacion>'.$encontrados_casa[$i]['Localidad'].'</poblacion>';
		$stringxml .= '     <coorx>'.$encontrados_casa[$i]['COORX'].'</coorx>';
		$stringxml .= '     <cory>'.$encontrados_casa[$i]['COORY'].'</coory>';
		$stringxml .= '  </casa>';
Se omitó una o en el tag de apertura de coory, de forma que se abre cory y se cierra coory, así que no queda un documento bien formado. Cambia eso y me cuentas

un saludo
  #11 (permalink)  
Antiguo 21/11/2006, 16:39
Avatar de yesik  
Fecha de Ingreso: octubre-2004
Ubicación: Orense
Mensajes: 292
Antigüedad: 19 años, 7 meses
Puntos: 1
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
__________________
Inmuebles de Galicia:: www.inmueblevirtual.net
Compartir piso Galicia:: www.inmueblevirtual.net/foro
  #12 (permalink)  
Antiguo 22/11/2006, 04:44
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
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
Un saludo
  #13 (permalink)  
Antiguo 22/11/2006, 05:12
Avatar de yesik  
Fecha de Ingreso: octubre-2004
Ubicación: Orense
Mensajes: 292
Antigüedad: 19 años, 7 meses
Puntos: 1
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...
__________________
Inmuebles de Galicia:: www.inmueblevirtual.net
Compartir piso Galicia:: www.inmueblevirtual.net/foro
  #14 (permalink)  
Antiguo 22/11/2006, 05:39
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Estupendo y suerte en tu pelea con googlemaps
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 21:43.