Какова альтернатива jQuery следующему коду JavaScript?

var xmlobject = (new DOMParser()).parseFromString(xmlstring, "text/xml");

Я полагаю, что альтернатива jQuery будет более кросс-браузерной?

4
Jack Roscoe 16 Июн 2010 в 18:52

3 ответа

Лучший ответ

Кросс-браузерный подход заключается в следующем, который я опубликовал несколько минут назад в ответ на похожий вопрос:

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 xml = parseXml("<foo>Stuff</foo>");
if (xml) {
    window.alert(xml.documentElement.nodeName);
}
3
Tim Down 16 Июн 2010 в 15:09

var $parsedXml = $(xmlstring);

Например, если у вас есть что-то вроде

<object>
  <property id="prop1" value="myVal" />
</object>

Как ваш xmlstring, вы могли бы сделать

var prop1 = $(xmlstring).find('#prop1').attr('value');

Чтобы получить значение свойства объекта.

-1
James Sumners 16 Июн 2010 в 14:59

Взгляните на эти плагины:

XmlDOM - http://plugins.jquery.com/project/XmlDOM
jParse - http://jparse.kylerush.net/

-1
Luke Bennett 16 Июн 2010 в 15:00