2

今、私はこのエラーが発生します。

このページには次のエラーが含まれています: 行 3、列 1 のエラー: ドキュメントの末尾にある余分なコンテンツ 以下は、最初のエラーまでのページのレンダリングです。

どういうわけか、出力が XML ファイルを HTML としてレンダリングしています。属性を 2 倍と 3 倍にチェックしましたが、それらは正しいです...そして、エラーを見つけることができないようです...手がかりのある友人はいますか?

$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();
4

1 に答える 1

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();が好位置。

于 2013-05-17T19:57:46.197 に答える