2012-05-13 43 views
0

我嘗試了一些已經發布在這裏的解決方案,但似乎沒有任何工作。這可能是因爲我真的不熟悉php或xml。我只需要爲xcoding輸出xml。所以希望有人能夠闡明一些事情,關於如何顛倒我xml的順序,以便最後一個條目處於頂部。 我最後一次嘗試什麼:如何以相反的順序放置XML內容?

$query = array_reverse($doc->xpath('query')); 

但它並不喜歡它,它不起作用。

因此,這裏是我的代碼,以創建我的xml文檔:

<?php 

if(!$dbconnect = mysql_connect('localhost', '-', '-')) { 
echo "Connection failed to the host 'localhost'."; 
exit; 
} // if 
if (!mysql_select_db('-')) { 
echo "Cannot connect to database '-'"; 
exit; 
} // if 

$table_id = 'table1'; 
$query = "SELECT Name,Age,Sex FROM $table_id"; 

$dbresult = mysql_query($query, $dbconnect); 

// create a new XML document 
$doc = new DomDocument('1.0'); 

// create root node 
$root = $doc->createElement('root'); 
$root = $doc->appendChild($root); 

// process one row at a time 
while($row = mysql_fetch_assoc($dbresult)) { 

// add node for each row 
$occ = $doc->createElement($table_id); 
$occ = $root->appendChild($occ); 

// add a child node for each field 
foreach ($row as $fieldname => $fieldvalue) { 

$child = $doc->createElement($fieldname); 
$child = $occ->appendChild($child); 

$value = $doc->createTextNode($fieldvalue); 
$value = $child->appendChild($value); 

} // foreach 
} // while 


// get completed xml document 
$xml_string = $doc->saveXML(); 
$doc->save("yolo.xml") 

//echo $xml_string; 
?> 
+0

你想用'SELECT 1,2,3,4'查詢來完成什麼?這隻會得到表格中每一行的文字數字1,2,3,4。 –

+1

正確的操作方法不是顛倒你的XML,但可能會顛倒你的查詢順序。 –

+0

噢,對不起,我刪除了最初在那裏的內容,我將對它進行編輯並將其還原。你能告訴我如何顛倒查詢順序嗎? – Blade

回答

1

做的最好的事情是發出SQL查詢返回你想要的順序結果。您在此處使用的SQL查詢沒有ORDER BY子句,因此結果不會按特定順序返回。而不是附加爲每行新的子節點,前置他們:

但是,您也可以根據您將它們添加到您的XML文檔反向結果的順序。替換此行:

$occ = $root->appendChild($occ); 

隨着

$occ = $root->insertBefore($occ, $root->firstChild); 

而且通常來說這是最好的完成構建XML樹將其添加到文檔之前。

+0

謝謝,按預期工作:) – Blade