jQuery не анализирует XML. $("<xml><elem></elem><elem></elem></xml>")
создает элемент и устанавливает для его свойства innerHTML
значение "<xml><elem></elem><elem></elem></xml>"
, что будет иметь переменные и непредсказуемые результаты.
Вам необходимо проанализировать XML с помощью встроенного в браузер синтаксического анализатора XML. Вот функция, которая делает это. Я не тестировал его в IE 9, но был бы удивлен, если бы он не работал: они реализовали DOMParser , поэтому в отличие от IE <9 он попадет в первую ветку и должен работать, если они все испортили. </p>
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");
});