2011-12-09 14 views
2

現在、PHP DOMを使用してHTMLからBODYタグを取得しています。PHPを使用してHTMLタグ内から子ノードのリストを取得する

$doc = new DOMDocument(); 
$doc->loadHTML($HTML);  
$body = preg_replace("/.*<body[^>]*>|<\/body>.*/si", "", $HTML); 

上記のコードは、特定のHTMLのbodyタグからhtmlを完全に取得します。

$bodyでHTMLタグを配列として取得できますか?

+0

は、スタックオーバーフローへようこそ。 '{}'ツールバーボタンでソースコードを書式設定することができます。私は今度あなたのためにそれをしました。 –

+0

ありがとうございます。私は実際にそれを逃した.. –

答えて

4

可能であれば、DOMを使用します。これにより、ソリューションの信頼性が高まり、よりクリーンな使い方になります。

このあなたの正しい方向に向かって取得する必要があります(私はあなたのための解決策を書いていないよ、申し訳ありません):

$html = file_get_contents("http://google.com"); 
$dom = new DOMdocument(); 
@$dom->loadHTML($html); 
$xpath = new DOMXPath($dom); 

$elements = $xpath->query("//*"); 


foreach ($elements as $element) { 

     echo "<h1>". $element->nodeName. "</h1>"; 
     $nodes = $element->childNodes; 

     foreach ($nodes as $node) { 
       echo "<h2>".$node->nodeName. "</h2>"; 
       echo $node->nodeValue. "\n"; 
     } 

} 
+0

私はDOMでそれをやる方法の例を教えてくれますか?上記のコードを編集しました。あなたは私に例を挙げることができます... –

+0

@AbishekRSrikaanth私の編集を参照してください。 – Prisoner

+0

ありがとう囚人、これは助けた –

関連する問題