此页面包含以下错误:创建html而不是XML

时间:2013-05-17 19:44:30

标签: php xml pdo

现在我收到了这个错误。

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

以某种方式输出将我的XML文件作为HTML重新发送。 我有双倍和三倍检查属性,他们是正确的......我似乎无法找到错误......任何有线索的朋友?

$dom = new DOMDocument("1.0");
$node = $dom->createElement("markers");
$parnode = $dom->appendChild($node);

    class Areas{
    private $link; 
    public function __construct(){
    $this->link = new Connection();
    $this->link = $this->link->dbConnect();
}

  function fetch_area() {
    $query = $this->link->query("SELECT * FROM markers WHERE 1");  
    $query->setFetchMode(PDO::FETCH_ASSOC);

    header("Content-type: text/xml");

        while($row = $query->fetch()) {  
          $node = $dom->createElement("marker");  
          $newnode = $parnode->appendChild($node);   
          $newnode->setAttribute("name",$row['name']);
          $newnode->setAttribute("adress", $row['adress']);  
          $newnode->setAttribute("lat", $row['lat']);  
          $newnode->setAttribute("lng", $row['lng']);  
          $newnode->setAttribute("type", $row['type']);
        } 
   }
  }
$area = new Areas();
$area_info = $area->fetch_area(); 
echo $dom->saveXML();

1 个答案:

答案 0 :(得分:2)

要快速修复,您应首先在fetch_area()函数中添加以下代码。

global $dom, $node, $parnode;

这样你的功能将如下所示:

function fetch_area() {
    global $dom, $node, $parnode;
    $query = $this->link->query("SELECT * FROM markers WHERE 1");  
    $query->setFetchMode(PDO::FETCH_ASSOC);

    header("Content-type: text/xml");

        while($row = $query->fetch()) {  
          $node = $dom->createElement("marker");  
          $newnode = $parnode->appendChild($node);   
          $newnode->setAttribute("name",$row['name']);
          $newnode->setAttribute("adress", $row['adress']);  
          $newnode->setAttribute("lat", $row['lat']);  
          $newnode->setAttribute("lng", $row['lng']);  
          $newnode->setAttribute("type", $row['type']);
        } 
   }

同样为了更好的编码,你最好取出

header("Content-type: text/xml");

就在echo $dom->saveXML();好位置之前。