2013-02-23 69 views
-2

我試圖從我的數據庫輸出各種表,但我似乎無法弄清楚如何執行我想到的。Mysql到Xml輸出在頁面

我想輸出像這樣的數據。

<locations> 
    <destination> 
     <name>A</name> 
     <address>B</name> 
    </destination> 

    <destination> 
     <name>C</name> 
     <address>D</name> 
    </destination> 
</locations> 

到目前爲止,我有這個作爲輸出。

<Locations> 
<destination name="burlo"/> 
<destination name="Raymund"/> 
<destination name="Bacolod City"/> 
<destination name="Victorias"/> 
<destination name="Sipalay"/> 
<destination name="Ambot"/> 
<destination name="aweawea"/> 
<destination name="ilo-ilo"/> 
<destination name="ilo-ilo"/> 
<destination name="Hinobaan"/> 
<destination name="heart"/> 
<destination name="heart"/> 
<destination name="heart"/> 
<destination name="heart"/> 
<destination name="heart"/> 
<destination name="Daddy"/> 
<destination name="aguisan"/> 
</Locations> 

這是我如何生成它們。

// Start XML file, create parent node 


$dom = new DOMDocument("1.0"); 
$node = $dom->createElement("Locations"); 
$parnode = $dom->appendChild($node); 

// Select all the rows in the markers table 

$query = "SELECT * FROM tbl_locations where status='active'"; 
$result = mysql_query($query); 
if (!$result) { 
    die('Invalid query: ' . mysql_error()); 
} 

header("Content-type: text/xml"); 

// Iterate through the rows, adding XML nodes for each 

while ($row = @mysql_fetch_assoc($result)){ 
    // ADD TO XML DOCUMENT NODE 

    $node = $dom->createElement("destination"); 

    $newnode = $parnode->appendChild($node); 
    $newnode->setAttribute("name",$row['name']); 




} 

echo $dom->saveXML(); 

?> 

希望有任何幫助。

+0

http://theintegrity.co.uk/2010/10/generate-xml-from-mysql-in- php/ – 2013-02-23 05:57:04

+0

你的問題是? – hakre 2013-02-28 13:38:17

回答

1

這一行做到這一點

$node = $dom->createElement("destination"); 
$newnode = $parnode->appendChild($node); 
$node1 = $dom->createElement("name"); 
$newnode = $parnode->appendChild($node1); 
$newnode->insertData(0,$row['name']); 
+0

你忘了地址位。 – 2013-02-23 05:58:35

2

更改爲

$newnode->setAttribute("name",$row['name']); 

爲了這些行

$nameNode = $doc->createElement('name'); 
$nameNode -> appendChild($doc->createTextNode($row['name'])); 
$node->appendChild($nameNode); 

$addNode = $doc->createElement('address'); 
$addNode -> appendChild($doc->createTextNode($row['address'])); 
$node->appendChild($addNode); 

當你需要構建樹。

+0

更新它仍然無法正常工作。第2行第1列的錯誤:文檔末尾的額外內容 – user1998926 2013-02-23 06:02:30

0

希望這有助於

<?php 
$xml   = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; 
$root_element = "locations"; 
$xml   .= "<$root_element>"; 
$sql ="**** YOUR QUERY ****"; 
if (!$result = mysql_query($sql)) 
    die("Query failed."); 

if(mysql_num_rows($result)>0) 
{ 
    $i = 0; 
    while($result_array = mysql_fetch_array($result)) 
    { 
    $xml .= "<destination>"; 
    $result[$i]['name']=$result_array['name']; 
    $xml .= "<name><![CDATA[{$result[$i]['name']}]]></name>"; 
    $result[$i]['dea']=$result_array['address']; 
    $xml .= "<address><![CDATA[{$result[$i]['address']}]]></address>"; 
    $xml.="</destination>"; 

    $i++; 
    } 
} 
//close the root element 

$xml .= "</$root_element>"; 

//send the xml header to the browser 
header ("Content-Type:text/xml"); 

//output the XML data 
echo $xml; 

讓我知道如果您有任何疑問