我对SimpleXML很新,并在其中使用xpath。我不确定是否在原始帖子或此处发布此查询,因此我链接到此处形成原始帖子。
在完成几个测试脚本的过程中,我遇到了这个posting,并且我一直试图使其中一个可接受的答案起作用。 但是,当我尝试使用接受的答案工作的xpath版本时,我收到错误消息:
Undefined offset: 0
我已经以其他方式测试了xpath,以验证它是否已安装且功能正常。感谢任何线索。
我已经复制了OP的xml文件以及接受的答案代码:
XML:
<data>
<poster name="E-Verify" id="everify">
<full_image url="e-verify-swa-poster.jpg"/>
<full_other url=""/>
</poster>
<poster name="Minimum Wage" id="minwage">
<full_image url="minwage.jpg"/>
<full_other url="spa_minwage.jpg"/>
</poster>
</data>
PHP代码:
<?php
$url = "test_b.xml";
$xml = simplexml_load_file($url);
$main_url = $xml->xpath('name[@id="minwage"]/full_image')[0];
?>
答案 0 :(得分:2)
你的XPath正在寻找一个名为name
的不存在的元素而没有找到它。这意味着使用[0]
不能获取0元素。我已将元素名称更改为poster
,在此示例中,我获取了url
属性,但您可以将其更改为您需要的任何其他内容...
$main_url = $xml->xpath('//poster[@id="minwage"]/full_image/@url')[0];
echo $main_url;
...给出
minwage.jpg