从xml文件获取数据时出错

时间:2014-05-30 06:25:21

标签: php xml

我编写了以下代码来了解如何使用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>

问题是当脚本运行时,它不会在浏览器中显示任何内容。实际上它并没有进入循环。

我肯定错过了一些基本的东西。

2 个答案:

答案 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