所以我有一个返回一堆结果的 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"
不过问题来了,我已经尝试了所有可以想象到的属性来获取内部文本:textConent
、innerText
、innerHTML
、 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/