简体   繁体   English

使用AJAX脚本从XML检索标题和说明

[英]Retrieving title and despcription from XML using AJAX script

I'm trying to extract the title and the description elements from a XML file using AJAX but I'm having some issues. 我正在尝试使用AJAX从XML文件中提取标题和描述元素,但出现了一些问题。 I've been able to get every title elements but I can't get description elements that come with them. 我已经能够获得每个标题元素,但无法获得它们附带的描述元素。 I've tried to use ChildNode in another for loop but I can't get it to work. 我尝试在另一个for循环中使用ChildNode,但无法正常工作。 Do you know how I could get it to work? 你知道我怎么能工作吗? Thanks! 谢谢!

Here's my code to retrieve title only : 这是我的仅检索标题的代码:

<div id="result"></div>

<script type="text/javascript">

    function ajaxRequest(){
        var activexmodes=["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"] 
        if (window.ActiveXObject){ 
            for (var i=0; i<activexmodes.length; i++){
                try{
                    return new ActiveXObject(activexmodes[i])
                }
                catch(e){
                }
            }
        }
        <!-- else if (window.XMLHttpRequest) -->
        return new XMLHttpRequest()
        <!-- else -->
        return false
        }

    var mygetrequest = new ajaxRequest()
    if (mygetrequest.overrideMimeType)
        mygetrequest.overrideMimeType('text/xml')
    mygetrequest.onreadystatechange=function(){
        if (mygetrequest.readyState==4){
            if (mygetrequest.status==200 || window.location.href.indexOf("http")==-1){
                var xmldata=mygetrequest.responseXML 
                var rssentries=xmldata.getElementsByTagName("item")
                var output='<ul>'
                for (var i=0; i<rssentries.length; i++){
                    output+='<li>'
                    output+='<a href="'+rssentries[i].getElementsByTagName('link')                    [0].firstChild.nodeValue+'">'
                    output+=rssentries[i].getElementsByTagName('title')    [0].firstChild.nodeValue+'</a>'
                    output+='</li>'
                }
                output+='</ul>'
                document.getElementById("result").innerHTML=output
            }
            else{
                alert("Error")
            }
        }
    }
    mygetrequest.open("GET", "testfile.xml", true) 
    mygetrequest.send(null)

</script>

If selectSingleNode() available, and assuimg you want to get <description> node under <item> node, then try something like this : 如果selectSingleNode()可用,并且assuimg您想在<item>节点下获得<description> <item>节点,则尝试这样的操作:

var description = rssentries[i].selectSingleNode('.//description');

The question isn't very clear as posted. 所发布的问题不是很清楚。 Posting sample XML and pointing out which node exactly you're having trouble to get should be able to clear things up. 发布示例XML并指出您确实难以获取的哪个节点应该能够清除问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM