XML / PHP:prolog中不允许使用内容

时间:2010-06-08 16:05:16

标签: php xml

我有此消息错误,我不知道问题出在哪里:

<?php include "DBconnection.class.php";

$sql = DBConnection::getInstance(); 

$requete = "my resquest (which is working)";

$sql->query($requete);  

 $xml = '<?xml version="1.0" encoding="UTF-8"?>';
 $xml .='<GamerCertified>';


            while($row = $sql->fetchArray()){

            $moyenne_services =  ($row['services'] + $row['serviceCli']  + $row['interface'] )/3;
            $moyenne_services = round( $moyenne_services,1);

            $moyenne_ge =  ($row['services'] + $row['serviceCli']  + $row['interface'] + $row['qualite'] + $row['rapport'] ) /5;
            $moyenne_ge = round( $moyenne_ge,1);

             $xml .= '<GSP>';

             $xml .= '<nom>'.$row["nom"].'</nom>';

             $xml .= '<votes>'.$row["nb_votes"].'</votes>';

             $xml .= '<services>'.$moyenne_services.'</services>';

             $xml .= '<qualite>'.$row["qualite"].'</qualite>';

             $xml .= '<prix>'.$row["rapport"].'</prix>';

             $xml .= '<transparence>'.$row["transparence"].'</transparence>';

              $xml .= '<moyenneGenerale>'.$moyenne_ge.'</moyenneGenerale>'; 

             $xml .= '<serveursDedies>'.$row["offreDedie"].'</serveursDedies>';

             $xml .= '</GSP>';
        }


 $xml .= '</GamerCertified>';
 echo $xml;

由于

(PS:FF / chrome回声没有标签:bc2x56.99.89.8081ckras1710.09.0080crazy-fun-game11010.010.00100crystal-serv349.79.69.509.60dedicore69.49.38.609.21)

4 个答案:

答案 0 :(得分:2)

XML Preamble应该是独立的。您的代码&lt; GamerCertified&gt;不被识别为标签。

只需在新行上添加标记,错误就会消失。

编辑:请试试这个,

 $xml = '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
 $xml .='<GamerCertified>';

答案 1 :(得分:1)

我认为问题出在其他地方。请尝试使用以下代码:

$xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";

而不是:

$xml = '<?xml version="1.0" encoding="UTF-8"?>';

这是因为您将整个XML文本存储在PHP变量中,这有时会出错。

另外请注意,在XML开始标记(<?xml ...)之前不要打印任何空格字符。只需在XML定义结束标记(... encoding="UTF-8"?>)之后使用一个回车符(如键盘的“enter”键),以便启动XML的第一个开始标记(<GameCertified>

希望它有所帮助。

答案 2 :(得分:0)

首先,在开始<?php标记之前删除空格。第二,是脚本中唯一的文件吗? </GamerCertified>标记后是否有任何非空白字符?如果是这样,那很可能就是问题。

答案 3 :(得分:0)

我遇到了同样的问题。

最终发现它是包含文件(在您的情况下是“DBconnection.class.php”文件)

包含文件保存在utf-8上。文件编辑器可以选择以“utf-8”或“utf-8无BOM”保存更改为我为我编写的包含文件的第二个选项...并删除xml标记之前的内容。