我正在使用 PHP 和 Xpath 为几个不同的值解析文档。我将 Xpath 查询的结果/匹配项放入数组中。因此,例如,我$prices array
像这样构建我的:
$prices = array();
$result = $xpath->query("//div[@class='the-price']");
foreach ($result as $object) {
$prices[] = $object->nodeValue; }
一旦我建立了我的数组,我就会循环并将这些值放入一些 HTML 中,如下所示:
$i = 0;
foreach ($links as $link) {
echo <<<EOF
<div class="the-product">
<div class="the-name"><a title="{$names[$i]}" href="{$link}" target="blank">{$names[$i]}</a></div>
<br />
<div class="the-image"><a title="{$names[$i]}" href="{$link}" target="blank"><img src="{$images[$i]}" /></a></div>
<br />
<div class="the-current-price">Price is: <br> {$prices[$i]}</div>
</div>
EOF;
$i++; }
问题是,我正在解析的原始文档中的某些项目没有价格,例如,它们甚至不包含<div class='the-price'>
,所以我的 Xpath 没有找到值,也没有将值插入$prices array
. _ 我最终返回了20 个产品和一个仅包含17 个键/值的数组,导致Notice: Undefined offset
整个地方出现错误。
所以我的问题是,我该如何解释缺少键值并丢弃我的数组的项目?我可以在这些项目的数组中插入虚拟值吗?我已经尝试了尽可能多的不同解决方案。主要是我的 foreach 循环中的 IF 语句,但似乎没有任何效果。
谢谢