如何用XPath提取所有class以date开头的div元素?
你的问题出在XPath表达式的逻辑上哦!你写的starts-with(name(), 'date')是在判断元素的名称是否以date开头,但你实际要筛选的是div元素的class属性值以date开头,这完全是两个不同的检查方向~
正确的实现代码
你需要把starts-with的目标指向div的class属性,用@class来引用这个属性,修改后的代码如下:
XML::xpathSApply(XML::htmlParse(myurl), "//div[starts-with(@class, 'date')]", XML::saveXML)
补充说明
这个表达式还能兼容包含多个class值的情况(比如<div class="date_s extra-class">...</div>),因为starts-with会直接检查属性值的起始部分是否为date,刚好匹配你想要的所有class以date开头的div元素。
内容的提问来源于stack exchange,提问作者RockScience
相关产品推荐
相关产品推荐

