Foros del Web » Programando para Internet » Javascript »

Parser xml y safari

Estas en el tema de Parser xml y safari en el foro de Javascript en Foros del Web. Muy buenas a todos, verán tengo un problema que me esta dando verdaderos dolores de cabeza. En primer lugar les diré que no tengo grandes ...
  #1 (permalink)  
Antiguo 04/08/2008, 05:10
 
Fecha de Ingreso: agosto-2008
Mensajes: 5
Antigüedad: 15 años, 8 meses
Puntos: 0
Parser xml y safari

Muy buenas a todos, verán tengo un problema que me esta dando verdaderos dolores de cabeza.
En primer lugar les diré que no tengo grandes conocimientos de XML, ni de programación aunque buscando por aquí y por allá he conseguido algunas cosas.
Dicho esto les explico mi problema.
Tengo una web que recoge las distintas noticias desde sendos archivos xml alojados en el servior. El código me han dicho que es muy enrrevesado, pero me funciona perfectamente en Firefox y En IE7. Les voy copiando el código para que vean mejor.
En la cabecera tengo declarado este código:

Código:
<script type="text/javascript">
function loadXMLDoc(dname)
{
try //Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");

}
catch(e)
{
try //Firefox, Mozilla, Opera, etc.
{
xmlDoc=document.implementation.createDocument("","",null);
}
catch(e) {alert(e.message)}
}
try
{
xmlDoc.async=false;
xmlDoc.load(dname);
return(xmlDoc);
}
catch(e) {alert(e.message)}
return(null);
}
</script>
En la parte de las noticias (dentro ya del body), tengo 2 scripts uno por cada sistema de noticias.

Noticias Breves:

Código:
<script language="JavaScript" type="text/javascript">
xmlDoc=loadXMLDoc("xml/breves.xml");

x=xmlDoc.getElementsByTagName("seccion");
y=xmlDoc.getElementsByTagName("fecha");
z=xmlDoc.getElementsByTagName("contenido");
for (i=0,a=1;i<x.length,a<x.length;i=i+2,a=a+2)
{
	document.write("<div class='section' id='" + x[i].childNodes[0].nodeValue + "'>" );
	document.write("<table summary='tabla' width='100%' border='0'><tr>" );
	document.write("<td width='2%' rowspan='2'>");
	document.write("<td width='48%' class='Fecha_Breves'>" + y[i].childNodes[0].nodeValue + "<\/td>" );
	document.write("<td width='48%' class='Fecha_Breves'>" + y[a].childNodes[0].nodeValue + "<\/td>" );
	document.write("<td width='1%' rowspan='2'>&nbsp;<\/td><\/tr><tr>" );
	document.write("<td valign='top' class='Texto_Breves'>"  + z[i].childNodes[0].nodeValue + "<\/td>" );
	document.write("<td valign='top' class='Texto_Breves'>"  + z[a].childNodes[0].nodeValue + "<\/td>" );
	document.write("<\/tr><\/table><\/div>" );
}
</script>
Este código me han dicho que es muy raro pero necesito que se cumplan esas 2 condiciones del for para que recorran las noticias del xml de forma que no se repitan (con una variable se recorren las pares y con la otra las impares. No se me ocurria otra forma de solucionar mi problema jejejejej). El caso es que esto también me funciona.

Noticias Normales:

Código:
<script language="JavaScript" type="text/javascript">
xmlDoc=loadXMLDoc("xml/noticias.xml");

x=xmlDoc.getElementsByTagName("titulo");
y=xmlDoc.getElementsByTagName("fecha");
w=xmlDoc.getElementsByTagName("contenido");
z=xmlDoc.getElementsByTagName("enlaces");
for (i=0;i<x.length;i++)
{
document.write("<div class='accordion_toggle'>" + x[i].childNodes[0].nodeValue + ".&nbsp;" + y[i].childNodes[0].nodeValue + "<\/div>");
document.write("<div class='accordion_content'>" + w[i].childNodes[0].nodeValue );
document.write("<br /><br />" );
document.write(z[i].childNodes[0].nodeValue + "<\/div>" + "<br />" );

}
</script>
Es igual que el anterior código pero con las modificaciones pertinentes para que recorra normalmente el xml.

Ahora bien, esto funciona perfectamente en Firefox y en IE7. El problema lo tengo con Safari, ya que arroja este error:

Código:
Value undefinided (result of expresion xmlDoc.load)
is not object
He buscado mucha informacion al respecto y todo el mundo apunta a usar XMLHttpRequest, pero por mas que lo intento no soy capaz de adaptar el código que yo tengo con mis necesidades con XMLHttpRequest.

Es imposible lo que necesito?

Gracias a todos de antemano.
  #2 (permalink)  
Antiguo 04/08/2008, 12:18
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 2 meses
Puntos: 90
Respuesta: Parser xml y safari

pediré que te muevan el post a javascript, ya que no tienes dudas sobre el XML...

Saludos
PD: Uno de los grandes problemas de JS es la incompatibilidad...talvés deberías parsear el XML en PHP y que este devuelva HTML puro...
__________________
Esteban Quintana
  #3 (permalink)  
Antiguo 04/08/2008, 15:00
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Respuesta: Parser xml y safari

Tema movido a JavaScript... y comparto la sugerencia de monoswim de la idea por trabajar en desde el servidor.

Suerte
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #4 (permalink)  
Antiguo 06/08/2008, 08:55
 
Fecha de Ingreso: agosto-2008
Mensajes: 5
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Parser xml y safari

realmente pensáis que es imposible hacer lo que quiero? :(
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 23:26.