Javascript 尝试在php中输出xml数据时出错

Javascript 尝试在php中输出xml数据时出错,javascript,php,ajax,xml,Javascript,Php,Ajax,Xml,我从数据库中创建了xml数据,并尝试在php页面中给出输出 function act_list(pagenum) { REQ = newXMLHttpRequest(); var handlerFunction = processReqList; REQ.onreadystatechange = handlerFunction; if( pagenum == 0 ){ pagenum = THISPAGE; }else{ T

我从数据库中创建了xml数据,并尝试在php页面中给出输出

function act_list(pagenum) {
    REQ = newXMLHttpRequest();
    var handlerFunction = processReqList;
    REQ.onreadystatechange = handlerFunction;
    if( pagenum == 0 ){
        pagenum = THISPAGE;
    }else{
        THISPAGE = pagenum;
    }
    REQ.open("POST", "act/act_list.php", true);
    REQ.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    REQ.send("page="+pagenum);
}
首先,当我请求一个JavaScript函数在php中创建一个xml文件时

<?php
    require_once "../include/config.php";
    require_once "../include/DBAccess.php";

    $rs = DBSelect("SELECT count(*) FROM {$tableName}");
    $row = mysql_fetch_array($rs);
    $totalCnt = $row[0];

    $thisPage = @(int)$_POST["page"];

    if($thisPage <= 1){
        $startNum = 0;
    }else{
        $startNum = ($thisPage-1) * $listUnit;
    }

    $strSQL = "";
    $strSQL = " SELECT seq, id, title, content, viewcount, write_time ";
    $strSQL .= "  FROM {$tableName} ";
    $strSQL .= " ORDER BY seq DESC ";
    $strSQL .= " LIMIT {$startNum},{$listUnit} ";

    $rs = DBSelect($strSQL);

    $out = "";
    $out = "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n";
    $out .= "<lists totalcnt='{$totalCnt}'>\n";

    while ( $row = mysql_fetch_array($rs) ) {
        $out .= "  <item seq=\"".$row[0]."\">\n";
        $out .= "    <uname>".$row[1]."</uname>\n";
        $out .= "    <btitle>".$row[2]."</btitle>\n";
        $out .= "    <bcommentcnt>".$row[3]."</bcommentcnt>\n";
        $out .= "    <bviewcnt>".$row[4]."</bviewcnt>\n";
        $out .= "    <bcreatetime>".$row[5]."</bcreatetime>\n";
        $out .= "  </item>\n";
    }

    $out .= "</lists>\n";
    header( "Content-type: application/xml; charset=utf-8" );
    echo $out;
?>
我尝试将php中生成的xml文件输出到html表列表。 但是,只有firstChild.nodeValue出现页面未找到错误

function processReqList() {
    // only if req shows "loaded"
    if (REQ.readyState == 4) {
        // only if "OK"
        if (REQ.status == 200) {
            printList();
        } else {
            alert("There was a problem retrieving the XML data:\n" +
            REQ.statusText + REQ.status);
        }
    }//if
}
function printList() {
    var lists = REQ.responseXML.getElementsByTagName("lists")[0];
    var output = document.getElementById("out");
    var outhtml = "";
    output.innerHTML = "";

    var items = lists.getElementsByTagName("item");

    outhtml += "<TABLE border='0' cellpadding='3' cellspacing='0' align='center' class='list_table'>";

    if(items.length > 0){
        outhtml += "<TR>";
        outhtml += "  <TD class='list_th' width='50' align='center'>NUM</TD>";
        outhtml += "  <TD class='list_th' align='center'>TITLE</TD>";
        outhtml += "  <TD class='list_th' width='70' align='center'>Author</TD>";
        outhtml += "  <TD class='list_th' width='70' align='center'>DATE</TD>";
        outhtml += "  <TD class='list_th' width='40' align='center'>COUNT</TD>";
        outhtml += "</TR>";

        for(var i=0; i<items.length; i++){
            var item = items[i];

            var seq = item.getAttribute("seq");
            var uname = item.getElementsByTagName("uname")[0].firstChild.nodeValue;
            var title = item.getElementsByTagName("btitle")[0].firstChild.nodeValue;
            var commentcnt = item.getElementsByTagName("bcommentcnt")[0].firstChild.nodeValue;
            var viewcnt = item.getElementsByTagName("bviewcnt")[0].firstChild.nodeValue;
            var createtime = item.getElementsByTagName("bcreatetime")[0].firstChild.nodeValue;
            uname = toEntity(uname);
            title = toEntity(title);

            outhtml += "<TR>";
            outhtml += "  <TD class='list_td' align='center'>"+seq+"</TD>";
            outhtml += "  <TD class='list_td'><A onclick='act_view("+seq+");'>"+title+"</A> ("+commentcnt+")</TD>";
            outhtml += "  <TD class='list_td' align='center'>"+uname+"</TD>";
            outhtml += "  <TD class='list_td' align='center'>"+toDate(createtime)+"</TD>";
            outhtml += "  <TD class='list_td' align='center'>"+viewcnt+"</TD>";
            outhtml += "</TR>";
        }

        var totalcnt = parseInt(lists.getAttribute("totalcnt"), 10);

        outhtml += func_paging(totalcnt);
    }else{
        outhtml += "<TR>";
        outhtml += "  <TD align='center'><B>There is none data.</B></TD>";
        outhtml += "</TR>";
    }

    outhtml += "</TABLE>";
    output.innerHTML = outhtml;
}

如果我犯了一个错误,就会发生一个错误?

你能粘贴堆栈跟踪吗?在查看代码时,我想到的一个问题是,你使用字符串连接来创建XML文档。这很容易出错。相反,使用XML库来创建XML。现有的问答材料实际上是一种参考问题,说明了如何做到这一点,例如:。发生此错误。未捕获的TypeError:无法读取null的属性“nodeValue”,这是XML的内容。im你好2 2014-11-25 01:44:28让我们一起来做这个测试这是一个测试内容1 2014-11-24 22:02:01