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

标签 javascript xml internet-explorer-8 nodes

所以我有一个返回一堆结果的 XML 提要。首先我创建一个 XML 解析器作为 outlined in faino's answer here .

XML 解析得很好。每个结果如下所示:

<result>
 <title>some title</title>
 <bid>0.05123</bid>
 <description>some desc</description>
</result>

所以我有:

// 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"

不过问题来了,我已经尝试了所有可以想象到的属性来获取内部文本:textConentinnerTextinnerHTML nodeValue - 它们似乎都不适用于 IE8。

使用 .textContent 相同的脚本在 Chrome/FF 中工作得很好

帮助!

最佳答案

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

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.");
    }
}

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

关于javascript - IE8中如何获取XML节点的文本值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27699057/

相关文章:

javascript - 检测客户信息Javascript/Jquery

c# - 使用 Jquery 从文本框向列表框添加项目

java - json.org 零被保存为字符串而不是数字

mysql - 解析数据库中的元素并将其更改为 XML 文件

javascript - Bootstrap 导航栏在移动设备上不会折叠

javascript - JQuery 添加分页符(如 Google Docs 或 MS Word)并转到下一页

java - 如何使用 ant 构建 jar 文件?

html - IE8 CSS 相对位置额外空格

internet-explorer-8 - 以为 IE 8 会正确解释盒子模型......我错过了什么吗?

html - 同页 anchor 链接到部分 id 在 IE8 中不起作用