2012-03-28 6 views
2

J'ai un problème avec l'export d'un fichier XML depuis PHP. Il n'applique pas la balise de fermeture qui semble me faire finir avec des balises HTMLHTML Tag in XML`

<!--?xml version="1.0"?--> 
<html> 
    <head> 
    </head> 
    <body> 
     <entries> 
     <entry> 
      <img>1030.jpg 
      <comment>Jean</comment> 
     </entry> 
     </entries> 
    </body> 
</html> 

Et voici la partie PHP qui le crée.

<?php 
    include_once "config.php"; 
    mysql_connect($dbhost, $dbuser, $dbpasswd); 
    mysql_select_db($dbname) or die ("Cannot select db" . mysql_error()); 
    session_start();  
$query = "SELECT * FROM test_table WHERE state = 1 LIMIT 10";  
$result = mysql_query($query) or die(mysql_error()); 

$xml = new SimpleXMLElement('<entries/>'); 

while ($row = mysql_fetch_array($result, MYSQL_NUM)) { 
    $values = implode(",", $row); 
    list($ep_id, $image, $origimg, $actid , $date, $approve, $apptime, $fbid, $custid, $title, $comment, $admincom, $link, $lang, $video, $rate, $finalist, $brand, $day, $source) = explode(",", $values); 
    $entry = $xml->addChild('Entry'); 
     $entry->addChild('link', $lang); 
     $entry->addChild('comment', $comment); 
} 

    print($xml->asXML()); 


?> 

Ce que je veux, c'est qu'il génère un fichier XML que je puisse référencer. Je ne suis pas sûr d'où viennent les balises HTML, mais ils me donnent un code d'erreur.

+0

Vérifiez la sortie brute du script. Dans votre cas, les balises HTML peuvent être des avertissements/notifications PHP. – zysoft

+0

Dans votre exemple de code, vous ajoutez un lien enfant, mais l'exemple de sortie est img. Avez-vous coupé le mauvais code? –

+0

Aussi votre chose de liste/explosion peut être simplifiée à chaque() pour enlever le besoin de faire l'étape d'analyse de chaîne du milieu (et permettrait un, dans l'un des champs) liste ($ ep_id, $ image, $ origimg, $ actid, $ date, $ approuver, $ apptime, $ fbid, $ custid, $ titre, $ commentaire, $ admincom, $ lien, $ lang, $ vidéo, $ tarif, $ finaliste, $ marque, $ jour, $ source) = chacun (valeurs $); –

Répondre

0
<?php 
    header("Content-type: text/xml"); 
    include_once "config.php"; 
    mysql_connect($dbhost, $dbuser, $dbpasswd); 
    mysql_select_db($dbname) or die ("Cannot select db" . mysql_error()); 
    session_start();  
$query = "SELECT * FROM `test_table` WHERE source = 'youtube'";  
$result = mysql_query($query) or die(mysql_error()); 

$xml = new XMLWriter(); 

$xml->openURI("php://output"); 
$xml->startDocument(); 
$xml->setIndent(true); 

$xml->startElement('Entries'); 

while ($row = mysql_fetch_assoc($result)) { 
    $xml->startElement('entry'); 

     $xml->writeElement('id', $row["ep_id"]); 
     $xml->writeElement('title', $row["ep_title"]); 
     $xml->writeElement('thumb', '<img src="http://img.youtube.com/vi/'.$row["ep_youtubeid"].'/2.jpg" width="60px" /><span style="margin: -20px 0 0 5px;">'.$row["ep_title"].'</span>'); 
     $xml->writeElement('content', '<iframe class="youtube-player" type="text/html" width="310" height="170" src="http://www.youtube.com/embed/'.$row["ep_youtubeid"].'" frameborder="0"></iframe><div style="text-align:left;color:#fff;"><strong>Title: </strong>' . $row["ep_title"].'</div><div style="text-align:left;color:#fff;"><strong>Comments: </strong>' . $row["ep_comments"].'</div><div class="fb-login-button">Login with Facebook</div>'); 

    $xml->endElement(); 
}; 

$xml->endElement(); 

$xml->flush(); 


?>