我需要解析这样的HTML:
<div class="item"><div class="title">title 1</div><div class="date">day 1</div></div>
<div class="item"><div class="title">title 2</div><div class="date">day 2</div></div>
<div class="item"><div class="title">title 3</div><div class="date">day 3</div></div>
实际上我是这样做的:
$title = $xpath->query('//div[@class="title"]//text()');
foreach ($title as $title)
{
$title = trim($title->nodeValue);
}
$date = $xpath->query('//div[@class="date"]//text()');
foreach ($date as $date)
{
$date = trim($date->nodeValue);
}
但是我只取一个项目,所以我寻找合适的方法在同一时间内获得所有项目
您可能想要遍历item
元素,然后找到它们各自的title
和date
文本。
$items = $xpath->query('//div[@class="item"]');
foreach ($items as $item) {
$title = $xpath->evaluate('string(div[@class="title"])', $item);
$date = $xpath->evaluate('string(div[@class="date"])', $item);
echo "$title $date'n";
}
>
我不太明白你的问题。循环工作如预期,你可以只是累积所有的标题和日期在一个数组中。虽然我不会重复使用相同的变量名。
$titles = $xpath->query('//div[@class="title"]//text()');
foreach ($titles as $title)
{
$all_titles[] = trim($title->nodeValue);
}
$dates = $xpath->query('//div[@class="date"]//text()');
foreach ($dates as $date)
{
$all_dates[] = trim($date->nodeValue);
}