php
  • xml
  • 2010-06-08 35 views 2 likes 
    2

    让我有此消息错误,我不知道在哪里做的问题来自:XML/PHP:内容是不是在序言

    <?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 /铬回声那没有标签:bc2x56.99.89.8081ckras1710.09.0080crazy-fun-game11010.010.00100crystal-serv349.79.69.509.60dedicore69.49.38.609.21)

    回答

    1

    我认为问题在别的地方。请尝试使用下面的代码:

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

    代替:

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

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

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

    希望它有帮助。

    2

    XML序言应该在它自己的行上。您的标签< GamerCertified>不被识别为标签。

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

    编辑:请尝试这个,

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

    我这样做,但现在:内容是不是在序言.. =允许'( – 2010-06-08 20:29:06

    +0

    见我的编辑... – 2010-06-08 22:23:48

    +0

    只是tryed它,同样的错误:内容是不是在序言中不允许 该文件在UTF编码-8没有BOM(notepad ++)='( – 2010-06-08 22:26:59

    0

    嗯,首先,开幕<?php标记之前删除空格。其次,这是脚本中唯一的文件吗? </GamerCertified>标签后是否有非空白字符?如果是这样,那很可能是问题所在。

    +0

    开放和<?php之间的空格仅存在于该帖子中 加上没有空格在标记之后。 – 2010-06-08 20:31:35

    0

    我有同样的问题。

    finaly发现它包含文件(在你的情况下,“DBconnection.class.php”文件)

    包含文件被保存在UTF-8。文件编辑器可以选择保存为“utf-8”或“没有BOM”的“utf-8”,并将其更改为包含我的包含文件的第二个选项......并在xml标签前移除内容。

    相关问题