Pregunta sobre xml, jquery, javascript – escribiendo archivos XML con jQuery

4

cambiar los atributos XML a través de jquery es fácil, simplemente:

$(this).attr('name', 'hello');

pero ¿cómo puedo agregar otra etiqueta en el archivo? Traté de usar agregar el JS muere en silencio.

¿Hay alguna manera de hacer esto?

Aclaraciones: Este código es parte de una extensión para Firefox, así que no se preocupe por guardar en el sistema de archivos del usuario. Aún el apéndice no funciona para documentos xml, pero puedo cambiar los valores de los atributos xml

Tu respuesta

2   la respuesta
10

documento de la página web, por lo que, como resultado, el nodo no se puede agregar a un documento XML diferente. Así que el nodo debe ser creado en el documento XML.

Puedes hacer esto así

var xml = $('<?xml version="1.0"?><foo><bar></bar><bar></bar></foo>'); // Your xml
var xmlCont = $('<xml>'); // You create a XML container
xmlCont.append(xml); // You append your XML to the Container created in the main document

// Now you can append without problems to you xml
xmlCont.find('foo bar:first').append('<div />');

xmlCont.find('foo bar div'); // Test so you can see it works
Esto funciona bien en FF & Chrome, pero a IE no le gusta mucho. El problema es que no puede analizar la cadena XML inicial en la primera expresión. Incluso si maneja el análisis específico de IE, tener su documento XML envuelto en un objeto jQuery no le permite agregarlo al nodo <xml> como se muestra arriba. El método 'html' tampoco funciona, es necesario usar 'innerHTML' y asignarle la cadena XML inicial como su valor. Tratar de encontrar nodos en el nodo <XML> tampoco funcionará. Tendrá que usar $ ("foo bar: first", xmlDoc) para proporcionar algún contexto para jQuery. Raybiez
@Raybiez tiene razón sobre IE; sin embargo, a partir de jQuery 1.5 debería poder usar .parseXML (...) para resolver este problema (No se ha probado):api.jquery.com/jQuery.parseXML Yarin
1

inar por qué el anexo está causando un error (o si el error está en otro lugar). Algo como:

$('selector').append('<p></p>');

debería funcionar bien

no hay error, pero la función deja de ejecutarse. CamelCamelCamel
Puedo confirmar que esto muere en silencio Yarin
¿Has probado los manipuladores relacionados como prepend () y insertAfter ()? acrosman

Preguntas relacionadas