2014-02-25 27 views
0

我有一個XML文件我一直在試圖使用PHP回聲沒有做出1長文本行這個問題。Php回聲xml文件

我第一次運行該代碼來創建我的XML頁面,所有的產品在我的數據庫:

<?php 
$cfg = Array(); 

$cfg['db_host'] = '***'; 
$cfg['db_user'] = '***'; 
$cfg['db_password'] = '***'; 
$cfg['db_name'] = '***'; 

mysql_connect($cfg['db_host'], $cfg['db_user'], $cfg['db_password']); 
mysql_select_db($cfg['db_name']); 

unset($cfg); 

$result = mysql_query("SELECT * FROM Artikelen"); 

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

while($row = mysql_fetch_assoc($result)) { 
    $draw = $xml->addChild('draw'); 
    $draw->addChild('Product_Id',$row['Pr_Id']); 
    $draw->addChild('Product',$row['Product']); 
    $draw->addChild('Prijs',$row['Prijs']); 
} 

$fp = fopen("Artikelen.xml","wb"); 
fwrite($fp,$xml->asXML()); 
fclose($fp); 
?> 

然後,我從另一個文件運行這段代碼,以顯示.XML

<?php 
$xml=simplexml_load_file("Artikelen.xml"); 
print_r($xml); 
?> 

什麼這說明是:

SimpleXMLElement Object ([draw] => Array ([0] => SimpleXMLElement Object ([Product_Id] => 1 [Product] => Pizza Margherita [Prijs] => 7.00))) 

時報11合1線長,因爲我有11個產品秒。我試過一些東西:

<?php 
$xml=simplexml_load_file("Artikelen.xml"); 

echo $xml->Product_Id . "<br>"; 
echo $xml->Product . "<br>"; 
echo $xml->Prijs . "<br><br>"; 
?> 

但這似乎並不奏效。

這是我第一次使用XML文件,所以它可能是一個非常簡單的解決方案。

在此先感謝!如果您似乎錯過了信息,請讓我知道。

回答

1

如果你想堅持的print_r(),只是前後呼應前標籤。

如:

<?php 
$xml=simplexml_load_file("Artikelen.xml"); 
echo '<pre>'; 
print_r($xml); 
echo '</pre>'; 
?> 
+0

這看起來很酷,是否還有一種方法可以刪除標籤並僅顯示信息,但這看起來可能會更好。 –

+0

不與print_r() - 它實際上是對象的轉儲。您需要循環播放,並以您想要的格式回顯您需要的每個屬性。 – rroberts

1

不需要重新發明車輪。 echo file_get_contents(),如下面的解決方案。

https://stackoverflow.com/a/1199643/2257899

編輯:

如果你看看你的print_r()的結果,你會看到它包含一個數組。嘗試:

<?php 
$xml=simplexml_load_file("Artikelen.xml"); 

echo $xml["Product_Id"] . "<br>"; 
echo $xml["Product"] . "<br>"; 
echo $xml["Prijs"] . "<br><br>"; 
?> 
+0

謝謝,這至少擺脫了所有的標籤,但有一個簡單的方法來
每行後和2
每個產品的價格後? –

+0

看到我的編輯,給一個鏡頭。 – rroberts

+0

謝謝!明天早上我會檢查它的第一件事 –

0

可以使用asXml方法顯示XML:

$xml=simplexml_load_file("Artikelen.xml"); 
echo $xml->asXML(); 
+0

謝謝,這至少擺脫了所有的標籤,但是有沒有一種簡單的方法可以在每條產品線的後面
之後以及每個產品的價格後面的? –