GetElementsByTagName只返回数组

时间:2016-10-27 14:15:38

标签: php

我正在尝试使用getElementsByTagName

获取数组中的每个元素
$xmlString = '<?xml version="1.0" encoding="UTF-8"?>
<order>
<line-items type="array">
<line-item>
<title>Title 1</title>
</line-item>
<line-item>
<title>Title 2</title>
</line-item>
</line-items>
    </order>';

但是只能得到第一个结果(标题1)。

$dom = new DomDocument();
$dom->loadXML($xmlString);
$order = $dom->getElementsByTagName('line-items');

foreach($order as $get){
echo $dom->getElementsByTagName('title')->item(0)->textContent;
}

如何确保循环遍历line-items并在title每个line-item中获得Undefined index: email in /var/www/html/subscribe.php on line 9 的每次迭代?

1 个答案:

答案 0 :(得分:0)

您需要遍历所有&#39;行项目&#39;元素和获得标题,而不是&#39;行项目&#39;因为它只出现一次。因此修改后的代码可能如下所示:

$order = $dom->getElementsByTagName('line-item');
foreach($order as $get){
   //echo $dom->getElementsByTagName('title')->item(0)->textContent;
   //echo $order->getElementsByTagName('title')->item(0)->textContent;

     echo $get->getElementsByTagName('title')->item(0)->textContent;
}

这应该可以解决问题。