需要 SimpleXML 和检索 HREF 节点值的帮助

发布于 2024-11-17 09:29:34 字数 609 浏览 3 评论 0 原文

我正在尝试检索 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>

任何人都可以发现问题吗?

I'm trying to retrieve the the HREF and echo it out using SimpleXML, but I keep getting the error message below.

Warning: Invalid argument supplied for foreach() in ...

<?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>

Can anyone spot the problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

删除→记忆 2024-11-24 09:29:34
  1. echo $it->site-page-href;
    应该是 echo
    $it->站点->页面->href;
  2. 您的
    结束标记应该是
  3. 您不应该使用 ->info
    已经位于根元素。
    即。
    simplexml_load_file($url)->内容->项目
    不是
    simplexml_load_file($url)->info->content->item

顺便说一句,如果使用 xpath

 $xml = simplexml_load_file($url);
 $href = $xml->xpath(".//href");
 foreach($href as $h) {
    var_dump($h);
 }
  1. echo $it->site-page-href;
    should be echo
    $it->site->page->href;
  2. Your
    end tag should be </info>
  3. You should not use ->info as you
    are already at the root element.
    ie.
    simplexml_load_file($url)->content->item
    not
    simplexml_load_file($url)->info->content->item

Btw, finding all of the href nodes can be achieved more easily if you use xpath.

 $xml = simplexml_load_file($url);
 $href = $xml->xpath(".//href");
 foreach($href as $h) {
    var_dump($h);
 }
梦年海沫深 2024-11-24 09:29:34

首先使用

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

XML 文件中的 标签并

echo $it->site-page-href;

结尾。

Firstly use

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

instead

echo $it->site-page-href;

and end the <info> tag with </info> in your XML file.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文