简体   繁体   English

Php echo xml文件

[英]Php echo xml file

I've had this issue with an XML File i've been trying to echo out using PHP Without making 1 long line of text. 我有一个XML文件的问题,我一直试图用PHP回声,而不用一长串文本。

I run this code first to create my XML page, of all the products in my database: 我首先运行此代码来创建我的数据库中所有产品的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);
?>

Then i run this code from another file to show the .XML : 然后我从另一个文件运行此代码以显示.XML

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

What this shows is: 这表明:

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

Times 11 in 1 long line, since i have 11 products. 时间11合1长线,因为我有11个产品。 I've tried some things as: 我尝试过一些事情:

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

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

But this doesn't seem to work. 但这似乎不起作用。

This is my first time working with XML files, so it might be a very simple solution. 这是我第一次使用XML文件,因此它可能是一个非常简单的解决方案。

Thanks in Advance!, If you seem to miss information please let me know. 在此先感谢!如果您似乎错过了信息,请告诉我。

No need to re-invent the wheel. 无需重新发明轮子。 Echo file_get_contents(), as in the below solution. Echo file_get_contents(),如下面的解决方案。

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

Edit: 编辑:

If you look at your print_r() results, you'll see it contains an array. 如果你查看你的print_r()结果,你会看到它包含一个数组。 Try: 尝试:

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

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

If you want to stick with print_r(), just echo pre tags before and after. 如果你想坚持使用print_r(),只需在之前和之后回显pre标签。

eg: 例如:

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

You can display xml using asXml method: 您可以使用asXml方法显示xml:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM