提前感谢您接受我明显的PHP限制。
考虑这个HTML:
<div class="story first enddate-2011-04-21">
<h3>misc HTML content</h3>
...
</div>
<div class="sparkly enddate-2014-01-01">
<p>blah blah blah</p>
...
</div>
如何使用PHP识别HTML文档中所有以“enddate-”开头的类的元素?
为什么我想知道:我想使用PHP(bx它的服务器端)来定位所有这些元素,就像在上面的两个div中一样;然后抓取(并验证)隐含的日期信息,如果今天的日期在结束日期之后,则导致该元素及其内部内容不显示在所提供的网页上(因此,在上面,删除所有的证据)现在是第一个div,但是直到2014年才能看到第二个。)
我找到了一些关于使用PHP HTML解析器查找具有特定ID的元素的建议here on stackoverflow,如:
$doc = new DOMDocument();
$doc->loadHTML($html);
$element = $doc->getElementById('ithis');
$element->parentNode->removeChild($element);
$html = $doc->saveHTML();
可以修改它以查找以'enddate'开头的类吗?
答案 0 :(得分:2)
我认为你可以使用XPath做到这一点。
这样的事情应该有效:
$xpath = new DOMXPath($domdocument);
$elements = $xpath->query("//*[contains(@class, 'enddate-')]");
(xpath查询未经测试)