0

関数を使用preg_match_allしてWebページの詳細を取得しています。しかし、問題は、指定された構造に完全に一致するものを返すことです。

例:

<span class="st">Details I want to get</span>

しかし、実際には次のようになります。

<span class="st"><em>Details </em>I want to <b>get<b></span>

したがって、上記の最初のコードに完全に一致する結果がいくつか返されます。

グラブに関する記事を見つけました。コードがありましたが、上記の構造で機能していることがわかったので、このようなコードを使用してこれを行うことはできますか?

$nodes = $xPath->query('//span[@class="st"]');
foreach($nodes as $node) {
    echo $node->nodeValue, PHP_EOL;
}
4

1 に答える 1

0

phpDOMDocumentとstrip_tagsを使用する

$xml = '<span class="st">Details i want to get</span>';
$dom = new DOMDocument;
$dom->loadXML($xml);
$spans = $dom->getElementsByTagName('span');
foreach ($spans as $span) {
 // you can check class etc with conditional statements
  #strip_tags to remove <em> and other tags inside that tag
  echo strip_tags($span->nodeValue), PHP_EOL;
}
于 2012-05-05T03:44:25.377 に答える