2009-07-30 13 views
1

C'est un problème assez simple mais je ne trouve pas de solution. J'écris du xml à un div caché sur la page et je le lis plus tard. Le problème est que certaines citations sont supprimées lors de l'écriture à la div et à cause de cela, je ne peux pas charger l'utilisation du XML dans IE en utilisant LoadXMLAjout suppression de guillemets

c'est le XML

<parameters id='XXX'> 
<product_id value='YYY'/> 
<report_id value='ZZZ'/> 
<list> 
    <filter_id value='AAA'/> 
</list> 
<date_begin value='BBB'/> 
<date_end value='CCC'/> 
<timeframe_id value='DDD'/> 
<chart_id value='EEE'/> 

J'ai employé beaucoup de méthodes différentes mais aucune ne semble fonctionner, j'essaye d'employer JQUERY autant que possible pour empêcher des issues croisées de navigateur, mais n'importe quelle solution fera.

j'ajouter le xml, dans une paramString variable de chaîne, au-dessus en utilisant

var parametersDiv = "<div id='" + reportDivId + "_params' style='visibility: hidden; display: none'>" + paramString + "</div>"; 

et il va dans bien. Cependant, lorsque j'essaie de le récupérer, les guillemets entourant XXX sont supprimés dans IE. Donc je ne peux pas le charger en utilisant loadXML(). Je pourrais pirater une solution mais je voudrais le faire correctement.

Toutes les solutions seraient utiles, j'ai perdu presque un jour à ce sujet.

Merci

JD

Répondre

1

Essayez d'utiliser des guillemets doubles et voir si cela fait le travail. Si ce n'est pas le cas, une autre solution à votre problème pourrait être d'obtenir XML XML par une requête XMLHttpRequest (Ajax).

jQuery.ajax({ 
    url: 'yourUrlThatReturnsXML', 
    dataType: 'xml', 
    success: function (data, textStatus) { 
    $(data); // Your XML 
    } 
}); 
+0

Je ne suis pas sûr que les guillemets doubles feraient n'importe quoi car c'est seulement les premiers paramètres que l'erreur est avec. Qu'est-ce qui se passe, c'est que j'ai une grande requête XML qui revient par ajax. Je suis en train d'analyser ce XML et en plaçant certaines sections dans des divs cachés autour de la page, de sorte que la prochaine fois que je veux faire une demande, je peux revenir sur les valeurs sauvegardées. – John

+0

Essayez d'enregistrer le XML en tant qu'objets dans les variables. var globalXML = $ (données); –

+0

Malheureusement, la page est complètement dynamique et je ne suis pas sûr si je peux avoir des noms de variables dynamiques en javascript. Cependant, je pourrais créer une table de hachage et stocker les noms avec les valeurs xml. Je vais essayer ça. – John

0

Comment insérez-vous ces div cachés dans la page? Vraisemblablement, vous utilisez innerHTML (étant donné que vous avez une chaîne), mais cela signifie qu'il est transmis via l'analyseur HTML d'IE. Cela le transformera en HTML (invalide), et quand vous essayerez de le récupérer, vous verrez l'effet que vous décrivez des attributs qui ne sont pas cités (et probablement d'autres effets secondaires que vous n'avez pas encore rencontrés ... pour le moment). Votre meilleur pari est d'enregistrer une référence au document XML renvoyé (pas une sérialisation de chaîne de celui-ci) dans une variable.

+0

oui cela fonctionne maintenant, merci pour votre solution – John