首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用xpathquery查询获得完整的类名?

如何使用xpathquery查询获得完整的类名?
EN

Stack Overflow用户
提问于 2014-08-19 12:45:04
回答 1查看 440关注 0票数 2

我正在通过HTML文档进行解析,我需要一个div的类名。我知道类名的一部分(这一点永远不会改变),但我需要完整的类名。

下面是我使用的代码:

代码语言:javascript
复制
$doc = new DOMDocument;
$doc->loadHTMLFile('http://some_website.com');
$xpath = new DOMXPath($doc);
$classname_of_the_div=$xpath->query('//div[@class="part_of_the_class_name_that_never_changes"]');

当我var_dump() $classname_of_the_div$classname_of_the_div->item(0)时,结果是:

代码语言:javascript
复制
object(DOMNodeList)#3 (1) { ["length"]=> int(0) } 
NULL

我知道$classname_of_the_div=$xpath->evaluate('string(//div[@class="part_of_the_class_name_that_never_changes"])');给了我div的内容,但是我如何获得完整的类名呢?

P.S.:类名的一部分与类名的其余部分用空格分隔开来,所以它实际上不是类的一部分。div只有几个类。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-19 12:55:34

我的意思是div有几个类名,例如,我想用" class2“来选择它,并接收包含"class1 class2 class3”的完整类字符串。

然后,一个类似于XPath的表达式

代码语言:javascript
复制
//div[@class="part_of_the_class_name_that_never_changes"]

不会产生结果,除非特定的div元素只有一个类,即“永不更改”的类。这是因为上面的XPath表达式意味着:

选择具有div属性的class元素,其字符串值与"part_of_the_class_name_that_never_changes“完全对应。

但想象一下以下情况:

代码语言:javascript
复制
<div class="part_of_the_class_name_that_never_changes other_class1 other_class2"/>

然后,需要将表达式更改为:

代码语言:javascript
复制
//div[contains(@class,'part_of_the_class_name_that_never_changes')]/@class

这句话的意思是:

查找具有字符串值包含字符串“div”的class属性的class元素,并返回属性值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25383770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档