我遇到DOMDocument / XPath问题。 HTML(我无法控制)看起来像这样:
.. random html ..
<div class="separator"></div>
<div class="date">01-01-1900</div>
<div class="item"><div>1 HTML garbage</div></div>
<div class="item"><div>2 HTML garbage</div></div>
<div class="separator"></div>
<div class="date">12-12-2012</div>
<div class="item"><div>3 HTML garbage</div></div>
<div class="item"><div>4 HTML garbage</div></div>
<div class="item"><div>5 HTML garbage</div></div>
<div class="item"><div>6 HTML garbage</div></div>
.. more random html ...
我如何需要我的数据:
$result = array(
'01-01-1900' => array(
array('name' => '1 HTML garbage'),
array('name' => '2 HTML garbage')
),
'12-12-2012' => array(
array('name' => '3 HTML garbage'),
array('name' => '4 HTML garbage'),
array('name' => '5 HTML garbage'),
array('name' => '6 HTML garbage')
)
);
由于深度可以改变,我无法使用浏览器控制台中的固定路径。 我如何按日期分组?现在我可以使用以下方法获取项目列表:
$xpath->query('//*[contains(concat(" ", normalize-space(@class), " "), " item ")]');
答案 0 :(得分:0)
由于您使用的是php,因此您可以先获取所有日期并迭代这些日期以根据this(未经测试的)获取项目
//../node[contains(@class,'item') and preceding-sibling::node[contains(text(),'12-12-2012')]]
以12-12-2012
作为搜索值。