Foros del Web » Programando para Internet » Javascript »

Problema al parsear XML

Estas en el tema de Problema al parsear XML en el foro de Javascript en Foros del Web. En mi pagina quiero devolver el contenido de las secciones con ajax. Alguna de las secciones lleva javascript. Ej: Código HTML: <script type= "text/javascript" > ...
  #1 (permalink)  
Antiguo 30/05/2007, 06:05
 
Fecha de Ingreso: mayo-2007
Mensajes: 4
Antigüedad: 17 años
Puntos: 0
Problema al parsear XML

En mi pagina quiero devolver el contenido de las secciones con ajax.
Alguna de las secciones lleva javascript.

Ej:

Código HTML:
<script type="text/javascript">
for (var i=0;i<10;i++){
alert(i);
}
</script>
<div>
hola
</div> 
El problema es que si pongo dentro de la etiqueta script un simbolo como "<" me da el error de que no puede parsearlo.
**El que lo quiera comprobar que guarde el codigo en un archivo.xml y lo intente abrir con cualquier navegador. (Logicamente que ponga este codigo dentro de unas etiquetas <xml></xml>, ya que un xml valido solo puede tener una rama principal)

Solucion que he encontrado:
-Escribir los "<" como "&#x3C;". Problema: tengo que sustituir solo los que estan dentro de etiquetas, sino da error tambien.
Si lo hago asi, es mucho mas complicado hacer el javascript, no es muy legible, ya que este codigo tan simple quedaria asi:

Código HTML:
<script type="text/javascript">
for (var i=0;i&#x3C;10;i++){
alert(i);
}
</script>
<div>
hola
</div> 
Tambien he pensado en currarme una expresion regular para que me sustituya este simbolo por el codigo, pero no lo veo demasiado elegante.

Alguna solucion???

Gracias a todos
  #2 (permalink)  
Antiguo 30/05/2007, 06:19
 
Fecha de Ingreso: mayo-2007
Mensajes: 4
Antigüedad: 17 años
Puntos: 0
Re: Problema al parsear XML

Para mas informacion:

La respuesta la parseo con DOMParser (lo traen todos los navegadores menos IE, para ie uso un ActiveXObject("MSXML.DomDocument") y para otros navegadores que no tengan este modulo hago una peticion ajax de la siguiente manera:
req.open("GET", "data:text/xml") + ";charset=utf-8," + encodeURIComponent(str), false);
y obtengo el req.responseXML.
Realmente es hacer una peticion a un string que es un xml.

Para meter los scripts en el html y que los detecte y ejecute:
-hago un getElementsByTagName('script')
-recorro el array y obtengo el contenido de la etiqueta y el src
-creo un elemento script
-le pongo el atributo type a text/javascript
-le pongo el contenido a este elemento nuevo.
-y por ultimo lo añado al document.body
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 12:08.