3

我有以下标签

<div class="col *">Text</div>

*是什么。

我想使用Simple HTML DOMcol获取所有具有类属性的 div 标签包含(如我的示例中)。

4

2 回答 2

17

因为Simple HTML DOM已经有一种方法来选择包含某个值和/或其他内容的属性。例如

$html->find("div[class*=col]", 0)->outertext

或者你可以只检索以这样div开头的节点col

$html->find("div[class^=col]", 0)->outertext

并且为了安全起见,您可以在这个 3rd 方插件中找到过滤属性的所有其他方法(顺便说一下,处理 DOM 有更好的方法,libxml可以在此处找到最终列表)

  1. [attribute]- 匹配具有指定属性的元素。
  2. [!attribute]- 匹配没有指定属性的元素。
  3. [attribute=value]- 匹配具有特定值的指定属性的元素。
  4. [attribute!=value]- 将没有指定属性的元素与某个值匹配。
  5. [attribute^=value]- 匹配具有指定属性并以某个值开头的元素。
  6. [attribute$=value]- 匹配具有指定属性并以特定值结尾的元素。
  7. [attribute*=value]- 匹配具有指定属性且包含特定值的元素。

来源:http ://simplehtmldom.sourceforge.net/manual.htm

于 2012-11-23T13:06:30.327 回答
0

目前我没有办法对其进行测试,但是当我研究它时(http://simplehtmldom.sourceforge.net/)它应该相当简单。

$html = file_get_html('http://somesite.net');
foreach($html->find('div') as $div){
  if stripos($div->class,"col"){
    // this $div has a "col" class..
  }
}

甚至更简单

$html = file_get_html('http://somesite.net');
foreach($html->find('div.col') as $div){
  // every $div has a "col" class..
}

它有效吗?

于 2012-11-23T08:26:41.870 回答