我编写了以下代码来了解如何使用php来获取和写入数据到xml文件:
<?php
if (file_exists('/requests.xml')) {
$xml = simplexml_load_file('requests.xml');
foreach($xml->data->requests->request as $req)
{
print "Loop entered";
print $req->ip;
print $req->timelast;
}
}
?>
xml文件requests.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<data>
<requests>
<request>
<ip>6.6.6.6</ip>
<timelast>2014-05-30 11:38:23</timelast>
</request>
</requests>
</data>
问题是当脚本运行时,它不会在浏览器中显示任何内容。实际上它并没有进入循环。
我肯定错过了一些基本的东西。
答案 0 :(得分:1)
$xml
会将您的默认节点设为自动,因此无需使用数据尝试获取结果
foreach($xml->requests->request as $req)
也改变了
if (file_exists('/requests.xml')) {
到
if (file_exists('requests.xml')) { // if same dir
我尝试过: -
$xml ='<?xml version="1.0" encoding="utf-8"?>
<data>
<requests>
<request>
<ip>6.6.6.6</ip>
<timelast>2014-05-30 11:38:23</timelast>
</request>
</requests>
</data>';
$xml = simplexml_load_string($xml);
foreach($xml->requests->request as $req)
{
print "Loop entered";
print $req->ip;
print $req->timelast;
}
输出: - Loop entered6.6.6.62014-05-30 11:38:23
答案 1 :(得分:0)
<?php
try
{
$feed = new SimpleXMLElement('requests.xml', null, true);
}
catch(Exception $e)
{
echo $e->getMessage();
exit;
}
foreach($feed->member as $property)
{
echo $property->id;
echo $property->lastName;
}
&GT?; XML: 1 MSDWEr