2010-12-28 10 views
20

次のコードを使用してxmlをローカルで解析すると、正常に動作しますが、サーバーに同じスクリプトをアップロードするとエラーが表示されます。1行目の2行目のエラー:ドキュメント末尾の余分な内容

注:クエリ文字列から$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上の
エラー:と文書も空である.....

このページには、次のエラーが含まれています以下は、文書 の最後に余分なコンテンツは、ページのレンダリングです最初のエラーまで。結果セットの各ループに

+0

これはどの言語ですか? –

+0

このコードはPHP言語のものです – hunter

答えて

3

、あなたは、ドキュメントへの新しいルート要素を追加する。このようなXML文書を作成している:

<?xml version="1.0"?> 
<mycatch>...</mycatch> 
<mycatch>...</mycatch> 
... 

XML文書が唯一のルート要素を持つことができ、そのため、「余分なコンテンツ」があるというエラーが表示されます。単一のルート要素を作成し、それにすべてのmycatch要素を追加します。

$root = $dom->createElement("root"); 
$dom->appendChild($root); 
// ... 
while ($row = @mysql_fetch_assoc($result)){ 
    $node = $dom->createElement("mycatch"); 
    $root->appendChild($node); 
38

私はあなたがこのようになります文書を作成していると思う:

<mycatch> 
    .... 
</mycatch> 
<mycatch> 
    .... 
</mycatch> 

それが持っているように、これは有効なXML文書ではありません複数のルート要素。

<mydocument>  
    <mycatch> 
     .... 
    </mycatch> 
    <mycatch> 
     .... 
    </mycatch> 
    .... 
</mydocument> 
+2

素晴らしいコメントです。どのように私はこれを忘れましたか? :( – ilight

+0

あなたは天才です。 – ViruMax

3

にあなたはそのため、コンテンツはに配信される

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

にお電話の前に出力(多分エラー/デバッグ出力)を持っている可能性があるとして、あなたは、単一のトップレベル要素を持っている必要がありますブラウザは "xml"ではありません...エラーメッセージがあなたに伝えようとしているものです(少なくとも、それは私の場合であり、あなたが記述したのと同じエラーメッセージを持っていました)。

5

問題はデータベース接続文字列で、MySQLデータベース接続関数のパラメータの1つが正しくないため、ブラウザの出力にエラーメッセージが表示されます。出力Webページを右クリックしてHTMLソースコードを表示するとエラー行が表示されます正しいXML出力データ(ファイル)によって。 私は同じ問題を抱えており、上記の解決策は完全に機能していました。

関連する問題