AJAX+PHP+XML错误求助?

AJAX+PHP+XML错误求助?

在firefox中执行content.php错误提示如下:

content.php源代码如下:
<?php
require_once("classes/mysqlclass.inc.php");
require_once("classes/pageclass.inc.php");
$mysql=new mysql("front","localhost","root","123");
$mysql->connect();
$mysql->query("select * from ft_products where lineid is not null");
$total=$mysql->recordcount();
if (empty($_GET["page"])) {$currpage = 1;}
else {$currpage = intval($_GET["page"]);}
$pagesize  = 10;
$pageclass = new page($total,$currpage,$pagesize);
$nav = $pageclass->get_page_nav();
$descible  = $pageclass->get_page_desible();
$first     = $pageclass->get_page_first();
$next      = $pageclass->get_page_next();
$prev      = $pageclass->get_page_prev();
$last      = $pageclass->get_page_last();
$recordstart = ($currpage - 1) *  $pagesize;
$sql = "select lineid,itemno,catalog,name,canview,imagename,descible from ft_products where lineid is not null order by lineid desc limit $recordstart,$pagesize";
$mysql->query($sql);
$xmlstr = "<?xml version='1.0' encoding='utf-8' ?>\n";
$xmlstr .= "<main>\n";
$xmlstr .=         "<nav>\n";
$xmlstr .=                 "<descible><![CDATA[" .$descible . "]]></descible>\n";
$xmlstr .=                 "<first><![CDATA[" .$first . "]]></first>\n";
$xmlstr .=                 "<next><![CDATA[" . $next . "]]></next>\n";
$xmlstr .=                 "<prev><![CDATA[" . $prev . "]]></prev>\n";
$xmlstr .=                 "<last><![CDATA[" . $last . "]]></last>\n";
$xmlstr .=         "</nav>\n";
$xmlstr .=         "<content>\n";
$xmlstr .=                 "<![CDATA[\n";
$xmlstr .=                 "<table border='1' width='100%' cellpadding='0' cellspacing='0'>\n";
$xmlstr .=                         "<tr bgcolor='#CCCCCC'>\n";
$xmlstr .=                         "<td>Lineid</td>\n";
$xmlstr .=                         "<td>Itemno</td>\n";
$xmlstr .=                         "<td>Name</td>\n";
$xmlstr .=                         "<td>catalog</td>\n";
$xmlstr .=                         "<td>descible</td>\n";
$xmlstr .=                         "</tr>\n";
while ($row = $mysql->nextrow()) {
$xmlstr .=                "<tr>\n";
$xmlstr .=                 "<td>" . $row["lineid"] . "</td>\n";
$xmlstr .=                "<td>" . $row["itemno"] . "</td>\n";
$xmlstr .=                "<td>" . $row["name"] . "</td>\n";
$xmlstr .=                "<td>" . $row["catalog"] . "</td>\n";
$xmlstr .=                 "<td>" . substr($row["descible"],0,50) . "</td>\n";
$xmlstr .=                 "</tr>\n";
}
$xmlstr .=                "</table>\n";
$xmlstr .=                 "]]>\n";
$xmlstr .=        "</content>\n";
$xmlstr .= "</main>";
header("content-type:text/xml;charset=utf-8");
echo($xmlstr);
?>
请帮我看看是什么问题?

[ 本帖最后由 bridge2006 于 2006-11-22 17:42 编辑 ]

查看了一下生成的xml内容,发现在<?xml version='1.0' encoding='utf-8' ?>前面多出了三个空格,怎么会多出三个空格来呢?
在ie下可以正确看到生成的xml内容,但是实际上也是多了三个空格的,可以通过查看页面源代码看到,如果有空格,在responseXML.documentElement时会出错。

问题总算已经解决,偶然将首选 参数中的unicode改成宋体,后再宋体改成unicode,问题居然解决,虽然没有看到什么字符作怪,但应该是unicode控制字符的问题。