我试图了解如何保存查询找到的html字符串,以便我可以访问它的元素。
我使用以下查询查找以下ul列表。
$data = $xpath->query('//h2[contains(.,"Hurricane Data")]/following-sibling::ul/li');
<h2>Hurricane Data</h2>
<ul>
<li><strong>12 items</strong> found, see <a href="/link">here</a>for more information</li>
<li><strong>19 items</strong> found, see <a href="/link">here</a>for more information</li>
<li><strong>13 items</strong> found, see <a href="/link">here</a>for more information</li>
</ul>
如果我print_r($data)
,我会得到以下DOMNodeList Object ( [length] => 3 )
,其中涉及找到的3个元素。
如果我foreach()
进入$data
,我会收到包含所有3个li数据的DOMElement对象。
我想要完成的是将每个li数据放入可访问的数组中,但我想解析html strong &amp;里面也有一个标签。
现在,我已经做了我想做的所有事情,除了强大的和标签没有被插入数组中,这就是我想出的。
$string = [];
$query = $xpath->query('//h2[contains(.,"Hurricane Data")]/following-sibling::ul/li');
foreach($query as $values){
$try = new \DOMDocument;
$try->loadHTML(mb_convert_encoding($values->textContent, 'HTML-ENTITIES', 'UTF-8'));
$string[] = $try->saveHTML();
}
echo $string[0];
// outputs = 12 items found, see here for more information
// no strong tags, no hyperlinks
答案 0 :(得分:1)
您不需要重新处理数据,您可以说保存此特定节点......
foreach($query as $values){
$string[] = $doc->saveHTML($values);
}
其中$doc
是用作XPath查询基础的文档。