我知道如何使用DOM getElementsByTagName从上到下循环使用html标签。
是否可以根据可能的查找或行号告诉循环实际启动的位置?
示例:
我在文件<!-- Start Here -->
在文件中找到评论
在评论
答案 0 :(得分:2)
XPath查询可以满足您的要求。您可以在特定评论后选择所有img
代码,如下所示:
$domDoc->load('/path/to/your/html');
$xpath = new DOMXPath($domDoc);
$qry = "//comment()[. = ' Start Here ']/following::img";
$results = $xpath->query($qry);
$results
现在包含评论后发生的所有img
标记的可迭代列表。然后,您可以根据自己的喜好处理图片。例如,这会打印出每个src
的{{1}}属性:
img
注意,在上面的循环中,foreach($results as $img){
echo $img->getAttribute('src');
}
是DOMNode
对象,因此您可以使用这些函数对其进行操作。
根据您的实际用例的复杂程度,我鼓励您阅读XPath syntax,它可以是一个非常强大的DOM解析工具。