2012-03-28 64 views
2

我遇到了從PHP導出XML文件的問題。這不是應用結束標記,這似乎使我最終得到HTML標記XML中的HTML標記

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

這裏是PHP部分創建它。

<?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()); 


?> 

我想要的是它生成一個XML文件,我可以參考。我不確定HTML標籤來自哪裏,但他們給我一個錯誤代碼。

+0

檢查腳本的原始輸出。在你的情況下,HTML標籤可以是PHP警告/通知。 – zysoft 2012-03-28 16:37:22

+0

在您的示例代碼中,您添加了一個鏈接子代,但示例輸出是img。你剔除了錯誤的代碼嗎? – 2012-03-28 17:32:20

+0

也可以將你的列表/ explode事件簡化爲each()來刪除中間字符串解析步驟的需要(並允許在任何字段中) list($ ep_id,$ image,$ origimg,$ actid,$ date,$ approve,$ apptime,$ fbid,$ custid,$ title,$ comment,$ admincom,$ link,$ lang,$ video,$ rate,$ finalist,$ brand,$ day,$ source) =每個($ values); – 2012-03-28 17:33:25

回答

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(); 


?>