Php echo xml文件

时间:2014-02-25 15:28:25

标签: php xml echo

我有一个XML文件的问题我一直试图用PHP回声而不用一长串文本。

我首先运行此代码来创建我的数据库中所有产品的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文件,因此它可能是一个非常简单的解决方案。

先谢谢!如果您似乎错过了相关信息,请告诉我。

3 个答案:

答案 0 :(得分: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>";
?>

答案 1 :(得分:1)

如果你想坚持使用print_r(),只需在之前和之后回复预标签。

例如:

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

答案 2 :(得分:0)

您可以使用asXml方法显示xml:

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