Reputation: 6121
So I have an XML feed that returns a bunch of results. First I create an XML parser as outlined in faino's answer here.
The XML parses just fine. Every result looks like this:
<result>
<title>some title</title>
<bid>0.05123</bid>
<description>some desc</description>
</result>
So I have:
// 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"
Here's the problem though, I have tried every property imaginable to get the inner text: textConent
, innerText
, innerHTML
, nodeValue
- none of them seem to work in IE8.
The same script works perfectly fine in Chrome / FF using .textContent
Help!
Upvotes: 1
Views: 1538
Reputation: 13304
A cross-browser backwards-compatible script:
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.");
}
}
In my own AJAX-calls where I retrieve XML I always use this function to retrieve to content of the node.
Upvotes: 6