我试图检索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>
有人能发现问题吗?
echo $it->site-page-href;
应为echo $it->site->page->href;
- 您的结束标记应为
</info>
- 你不应该像你一样使用
->info
已经在根元素处
即simplexml_load_file($url)->content->item
不是simplexml_load_file($url)->info->content->item
顺便说一句,如果使用xpath,可以更容易地找到所有href节点。
$xml = simplexml_load_file($url);
$href = $xml->xpath(".//href");
foreach($href as $h) {
var_dump($h);
}
首先使用
echo $it->site->page->href;
而是
echo $it->site-page-href;
并在XML文件中以</info>
结束<info>
标记。