簡體   English   中英

如何在IE8中獲取XML節點的文本值?

[英]How to get the text value of an XML node in IE8?

因此,我有一個XML提要,它返回了一堆結果。 首先, 按照faino的答案中所述創建XML解析器。

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"

但是,這是問題所在,我嘗試了可以​​想象得到的每個屬性來獲取內部文本: textConentinnerTextinnerHTMLnodeValue它們似乎都無法在IE8中工作。

相同的腳本在使用.textContent Chrome / FF中效果.textContent

救命!

跨瀏覽器的向后兼容腳本:

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調用中,我總是使用此函數來檢索節點的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM