我有此消息错误,我不知道问题出在哪里:
<?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)
答案 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标记之前的内容。