3

次のタグがあります

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

*何でもあります。

Simple HTML DOMcolを使用して、(私の例のように) class 属性が含まれるすべての div タグを取得したいと考えています。

4

2 に答える 2

17

Simple HTML DOMには、特定の値やその他の値を含む属性を選択するためのメソッドが既に用意されているためです。例えば

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

または、そのようdivに始まるノードを取得することもできますcol

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

また、安全に保管するために、このサードパーティのプラグインで属性をフィルタリングする他のすべての方法を見つけることができます (ちなみに、に基づく 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 に答える