2009-07-30 13 views
1

Dies ist ein ziemlich einfaches Problem, aber ich kann keine Lösung finden. Ich schreibe etwas xml in ein verstecktes div auf der Seite und lese es später. Das Problem ist, dass einige Zitate entfernt werden, wenn sie dem div schreiben und aus diesem Grund kann ich die Verwendung der XML im IE nicht geladen mit LoadXMLAppend entfernen Zitate

Dies ist die 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'/> 

Ich habe viele verschiedene Methoden verwendet, aber keine scheint zu funktionieren, ich versuche, JQUERY so weit wie möglich zu verwenden, um Cross-Browser-Probleme zu verhindern, aber jede Lösung reicht aus.

anhängen ich die xml, in einer String-Variablen paramString, oben mit

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

und es geht in Ordnung.

aber wenn ich versuche, es zu erhalten, werden die Anführungszeichen rund um die XXX in IE entfernt. Daher kann ich es nicht mit loadXML() laden. Ich könnte eine Lösung hacken, aber ich würde es gerne richtig machen.

Irgendwelche Lösungen wären hilfreich, ich habe schon fast einen Tag damit verschwendet.

Dank

JD

Antwort

1

Versuchen doppelte Anführungszeichen und sehen, ob das die Arbeit erledigt.

Wenn nicht, könnte eine andere Lösung für Ihr Problem sein, das XML durch eine XMLHttpRequest (Ajax) zu bekommen.

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

Ich bin nicht sicher, doppelte Anführungszeichen würde etwas tun, da es nur die ersten Parameter ist, mit denen der Fehler ist. Was passiert ist, dass ich eine große XML-Anfrage zurück durch Ajax habe. Ich analysiere dieses XML und setze einen bestimmten Abschnitt in versteckte divs um die Seite, sodass ich das nächste Mal, wenn ich eine Anfrage machen möchte, auf die gespeicherten Werte zurückgreifen kann. – John

+0

Versuchen Sie, die XML als Objekte in Variablen zu speichern. var globalXML = $ (Daten); –

+0

Leider ist die Seite komplett dynamisch und ich bin nicht sicher, ob ich dynamische Variablennamen in Javascript haben kann. Ich könnte jedoch eine Hashtabelle erstellen und Namen zusammen mit den XML-Werten speichern. Ich werde es versuchen. – John

0

Wie einfügen Sie diese versteckten Divs in die Seite? Vermutlich verwenden Sie innerHTML (vorausgesetzt, Sie haben eine Zeichenfolge), aber das bedeutet, dass es durch den HTML-Parser des IE weitergegeben wird. Dadurch wird es in (ungültigen) HTML-Code umgewandelt, und wenn Sie versuchen, es abzurufen, sehen Sie den Effekt, den Sie beschreiben, wenn Attribute nicht quoted sind (und wahrscheinlich andere Nebenwirkungen, die Ihnen noch nicht begegnet sind ...).

Am besten speichern Sie eine Referenz auf das zurückgegebene XML-Dokument (keine String-Serialisierung davon) in einer Variablen.

+0

ja das funktioniert jetzt, danke für deine lösung – John