如何在IE8中获取XML节点的文本值?

dsp*_*099 1 javascript xml nodes internet-explorer-8

所以我有一个XML feed返回一堆结果.首先,我在这里创建一个XML解析器,如faino的答案所述.

XML解析得很好.每个结果都是这样的:

<result>
 <title>some title</title>
 <bid>0.05123</bid>
 <description>some desc</description>
</result>
Run Code Online (Sandbox Code Playgroud)

所以我有:

// parse
var xmlParser = returnXMLParser();
var resultsDoc = xmlParser(adXML.responseData); // #document
var listings = resultsDoc.getElementsByTagName('listing'); // returns 8-10
// get title node
var title = listings[0].getElementsByTagName('title')[0];
title.nodeType // 1
title.nodeName // "title"
Run Code Online (Sandbox Code Playgroud)

这里的问题,虽然,我都想尽财产可以想象得到的内部文本:textConent,innerText,innerHTML,nodeValue-他们都不在IE8工作.

使用相同的脚本在Chrome/FF中完美运行 .textContent

救命!

Mou*_*ser 6

跨浏览器向后兼容的脚本:

function getXMLContent(obj,action)
{

    //cross-browser get and set for xmlContent
    if (obj)
    {
        if (action == "get") //get
        {
            if(obj.textContent)
            {
                return obj.textContent;
            }
            else
            {
                return obj.text;
            }
        }
        else //set
        {
            if(obj.textContent)
            {
                obj.textContent = action;
            }
            else
            {
                obj.text = action;
            }
        }
    }
    else
    {
        throw new Error("XML-Element doesn't exist.");
    }
}
Run Code Online (Sandbox Code Playgroud)

在我自己的AJAX调用中,我检索XML,我总是使用此函数来检索节点的内容.