需要有关SimpleXML的帮助并检索HREF节点值

时间:2011-06-23 18:06:19

标签: php xml warnings simplexml

我正在尝试检索HREF并使用SimpleXML将其回显,但我一直收到以下错误消息。

警告:在......

中为foreach()提供的参数无效
<?php

$url = 'file.xml';

foreach(simplexml_load_file($url)->info->content->item as $it) {
    echo $it->site-page-href;
}

?> 

<?xml version="1.0" encoding="utf-8"?>
<info>
    <content>
        <item>
            <site>
                <page>
                    <href>http://domain.com</href>
                </page>
            </site>
        </item>
    </content>
<info>

有人能发现问题吗?

2 个答案:

答案 0 :(得分:3)

  1. echo $it->site-page-href; 应该是echo $it->site->page->href;
  2. 您 结束标记应为</info>
  3. 您不应该使用->info 已经处于根本要素 即
    simplexml_load_file($url)->content->item
    simplexml_load_file($url)->info->content->item
  4. 顺便说一句,如果您使用xpath,可以更轻松地找到所有href节点。

     $xml = simplexml_load_file($url);
     $href = $xml->xpath(".//href");
     foreach($href as $h) {
        var_dump($h);
     }
    

答案 1 :(得分:0)

首先使用

echo $it->site->page->href;

代替

echo $it->site-page-href;

并在XML文件中以<info>结束</info>标记。