jQuery analysiert XML nicht. Was $("<xml><elem></elem><elem></elem></xml>")
tut, ist ein Element zu erstellen und seine Eigenschaft innerHTML
auf "<xml><elem></elem><elem></elem></xml>"
zu setzen, die variable und unvorhersehbare Ergebnisse haben wird.
Sie müssen den XML-Code mit dem integrierten XML-Parser des Browsers analysieren. Hier ist eine Funktion, die dies tut. Ich habe es nicht in IE 9 getestet, aber ich wäre überrascht, wenn es nicht funktioniert hätte: they've implemented DOMParser, so im Gegensatz zu IE < 9 wird es in den ersten Zweig fallen und sollte funktionieren, es sei denn, sie haben ein Durcheinander gemacht.
var parseXml;
if (window.DOMParser) {
parseXml = function(xmlStr) {
return (new window.DOMParser()).parseFromString(xmlStr, "text/xml");
};
} else if (typeof window.ActiveXObject != "undefined" && new window.ActiveXObject("Microsoft.XMLDOM")) {
parseXml = function(xmlStr) {
var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
xmlDoc.loadXML(xmlStr);
return xmlDoc;
};
} else {
parseXml = function() { return null; }
}
var xmlStr = "<xml><elem></elem><elem></elem></xml>";
var xmlDoc = parseXml(xmlStr);
$(xmlDoc).each(function() {
alert("processing elem tag");
});
Ich habe dasselbe Problem für IE8, haben Sie irgendwelche Lösungen gefunden? –