如何在php中循环遍历xml文件列表

时间:2016-08-10 23:04:08

标签: php xml cakephp

下面是我的代码我想循环遍历XML文件列表并输出内部所有XML文件的节点。 我的以下XML列表位于xml_joblist.php的文件中: http://80.08.00.150/internal/xxx/xxxx/xml_joblist.php和此url链接内部是下面列出的xml文件:

http://80.08.00.150/internal/xxx/xxx/55_27_12116.xml http://80.08.00.150/internal/xxx/xxx/55_40_12134.xml http://80.08.00.150/internal/xxx/xxx/85_41_12134.xml http://80.08.00.150/internal/xxx/xxx/75_43_12134.xml http://80.08.00.150/internal/xxx/xxx/58_45_12134.xml

所有这些节点都是相同的节点,但具有不同的日期。

<PositionRecordInfo> <PositionProfile xml:lang="de-DE">Test</PositionProfile></PositionRecordInfo> <PositionPostings>1</PositionPostings>

所以我的问题是如何加载所有XML文件列表并从中输出日期我尝试过以下内容:

public static function parse($content, $pageID) {

    $jobs = array();
    $objects = simplexml_load_string($content, "SimpleXMLElement", LIBXML_PARSEHUGE);
$ object中的

//是第一个xml_joblist.php对象

    if (!isset($objects->Link)) CrawlerHelper::emptyNodeException();

// $ objects-&gt;链接包含所有链接列表 //这里我加载第一个链接的内容,但我想加载一个链接的所有内容;

    $url = (string)$objects->Link[0];
    //$urls=(string)$objects->Link;
    $content = (simplexml_load_file($url));
    //$content = (simplexml_load_file($urls));
    echo json_encode($content) ."\n";

//我想像这样加载xml文件的所有内容。

foreach ($content as $job) {
    $jobs=$job->PositionRecordInfo;


        echo $jobs->PositionProfile."\n";


    }
}

==&GT;我在这里得到一个错误=&gt;无法加载XML-S的enitre列表

1 个答案:

答案 0 :(得分:0)

这是解决方案:

    public static function parse($content, $pageID) {

    $jobs = array();
    $objects = simplexml_load_string($content, "SimpleXMLElement", LIBXML_PARSEHUGE);

    foreach($object->$job as $links)
    {
      $link=all the links;
      //load all the links in a simplexml_load_file
      $job=simplexml_load_file($links);
      //and than put them on array:
      $newjobs=array(JobFiels::url=>$job=>url,and so onee);
      $jobs[]=newjobs;
     } 
      //Test
      echo json_encode($jobs);
      return $jobs;

   }