2011-07-19 17 views
3

htmlをDOMツリーに解析し、<a>タグ内にないすべてのテキストを検索したいので、私はそれを見つけ出し、 "PHP Simple HTML DOM Parser "を参照してください。それは、HTML DOMをDOMツリーに解析するのに役立つようです。私は<a>タグの中にないテキストを見つけたいですが、私は<a>タグの中にある要素しか見つけることができません。 * ps:まだCSS3セレクターをサポートしていません。ありがとうございました。 これについての経験は1つですか?ありがとうございました。PHP Simple HTML DOM Parserを使用してハイパーリンクされていないテキストを見つける方法

+0

代わりに[DOM](http://php.net/manual/en/book.dom.php)を実際に使用する[SimpleHtmlDom](http://simplehtmldom.sourceforge.net/)のサードパーティの代替案をお勧めします。文字列の解析:[phpQuery](http://code.google.com/p/phpquery/)、[Zend_Dom](http://framework.zend.com/manual/en/zend.dom.html)、[QueryPath ](http://querypath.org/)および[FluentDom](http://www.fluentdom.org)。また、[ベストメソッドまたはHTMLを解析する]を参照してください(http://stackoverflow.com/questions/3577641/best-methods-to-parse-html/3577662#3577662) – Gordon

答えて

1

私は質問を誤解していないことを望みますが、 <a>タグ内のテキストをPHPで見つけるために組み込みのDOM関数を使用することはできませんか?その場合

$doc = new DOMDocument(); 
$doc->loadHTMLFile("http://blahblah.com/blah.html"); 
$elem_list = $doc->getElementsByTagName("a"); 
foreach($elem_list as $elem) 
    echo $elem->textContent; 

私は(正規表現で、たとえば)すべて<a>タグとその内容を削除して、お好みのDOMパーサに結果のHTMLをロードします。

更新:さらに良いことに、すぐにHTMLを解析し、すべてのタグを通じて<a>タグ、またはループを削除し、ちょうど<a>タグをスキップする組み込み関数を使用します。 HTMLを使った正規表現は避けるべきです。

+0

nono、私はタグの中にないテキストが必要です。 – Tattat

+0

ああ、ありがとう。質問の文章は少し誤解を招き、修正しようとしました(編集内容をピアレビューする必要があります)。 – newenglander

0

私はこのクラスを何回も使用しました。 phpのhtml/domを解析する優れたソリューションです。

$html = new simple_html_dom(); 
// Load your html as string 
$html->load('........ HTML ..........'); 
$a = $html->find('a'); 
$text=''; 
for($i=0;$i<count($a);$i++) 
$text.=$a[$i]->innertext; 

タグ内のすべてのテキストを含む可変$テキスト。 それがあなたを助けてくれることを願っています。

関連する問題