php中的XML解析错误

时间:2010-12-28 07:24:29

标签: php xml domdocument

当我使用下面的代码并在本地解析xml时它可以正常工作但是当在服务器上传相同的脚本时它会显示错误。代码是

注意:我从查询字符串中检索了$lng$lat,它在本地工作正常。

$lng=$_GET['lng'];
$lat=$_GET['lat'];
$conn=new LoginSystem();
$conn->connect();
$dom = new DOMDocument("1.0");
$query="select catch_id,catch_details,image from mycatch where longitude='$lng' AND latitude='$lat'";
$result = mysql_query($query);
if (!$result) {
  die("Invalid query: " . mysql_error());
}
header("Content-type: text/xml");

// Iterate through the rows, adding XML nodes for each
while ($row = @mysql_fetch_assoc($result)) {
  $node = $dom->createElement("mycatch");
  $node = $dom->appendChild($node);

  foreach ($row as $fieldname => $fieldvalue) {
       $child = $dom->createElement($fieldname);
       $child = $node->appendChild($child);
       $value = $dom->createTextNode($fieldvalue);
       $value = $child->appendChild($value);
  }
}

$conn->disconnect();
$xml_string = $dom->saveXML();
echo $xml_string;

在服务器上我收到此错误。文件也是空的......

  

此页面包含以下错误:
  第1行第2行的错误:文档末尾的额外内容   下面是第一个错误的页面呈现。

1 个答案:

答案 0 :(得分:1)

您可能需要为XML文档定义根元素。

目前你似乎已经

<mycatch>
 <catch_id>1</catch_id>
 <catch_details>details</catch_details>
 <image>image</image>
</mycatch>
<mycatch>
 <catch_id>2</catch_id>
 <catch_details>details</catch_details>
 <image>image</image>
</mycatch>
...

但是您没有根元素,例如:

<catches>
    <mycatch>
     <catch_id>1</catch_id>
     <catch_details>details</catch_details>
     <image>image</image>
    </mycatch>
    <mycatch>
     <catch_id>2</catch_id>
     <catch_details>details</catch_details>
     <image>image</image>
    </mycatch>
</catches>