SimpleXML文档的xpath查询 - 未定义的偏移量:0

时间:2018-01-08 17:14:05

标签: php arrays xml xpath simplexml

我对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];
?>

1 个答案:

答案 0 :(得分:2)

你的XPath正在寻找一个名为name的不存在的元素而没有找到它。这意味着使用[0]不能获取0元素。我已将元素名称更改为poster,在此示例中,我获取了url属性,但您可以将其更改为您需要的任何其他内容...

$main_url = $xml->xpath('//poster[@id="minwage"]/full_image/@url')[0];
echo $main_url;

...给出

minwage.jpg