Как использовать XPath в FireFox? - PullRequest
0 голосов
/ 06 марта 2012

У меня есть веб-приложение, и теперь я хочу улучшить его, чтобы оно работало в FireFox. Моя проблема в том, как использовать XPath в кросс-браузерной манере.

У меня есть этот скрипт:

var oXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        oXmlDoc.async = "false";
        oXmlDoc.loadXML(document.getElementById(MasterObj + "txtMenu").value);
        var xmlNodes = oXmlDoc.documentElement.selectNodes("/FormGeneratorEntity/GetMenu[TemplateID=" + obj.value + "]");
  var len = xmlNodes.length
        for (var i = 0; i < len; i++) {
   alert(xmlNodes.item(i).selectSingleNode('Title').text)
}

И моя строка XML выглядит так:

 <FormGeneratorEntity><GetMenu><Title>MyTitle</Title><Val>MyValue<Val/></GetMenu></FormGeneratorEntity>

Как я могу заставить это работать в Firefox?

Ответы [ 2 ]

1 голос
/ 06 марта 2012

Можете ли вы использовать JQuery? Если это так, это было бы гораздо более удобным для браузера решением.

0 голосов
/ 06 марта 2012

Ваш вопрос не «Как использовать XPath в Firefox», а «Как создать XML-документ из строки (в Firefox)».

Ответ на этот вопрос - DOMParser, точнее, метод parseFromString:

oXmlDoc = new DOMParser().parseFromString(content_string, "text/xml"); 

Реализовано в вашем текущем коде:

var oXmlDoc,
    content_string = document.getElementById(MasterObj + "txtMenu").value;
if (window.DOMParser) {
    oXmlDoc = new DOMParser().parseFromString(content_string, "text/xml");
} else if (window.ActiveXObject) {
    oXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    oXmlDoc.async = "false";
    oXmlDoc.loadXML(content_string);
} else {
    // Not supported. Do something
}

Если вы все еще ищете отличную документацию по XPath, взгляните на Сеть разработчиков Mozilla: XPath .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...