2013-06-09 15 views
11

私はそれがそのままの特定のdivを抽出したい文書を持っています。 私が行いますDOMXPath :: query()メソッドから完全なHTMLを取得するには?

$dom = new DOMDocument(); 
$dom->loadHTML($string);//that's HTML of my document, string 

とXPathクエリ:

$xpath = new DOMXPath($dom); 
$xpath_resultset = $xpath->query("//div[@class='text']"); 
/*I'm after div class="text"*/ 

今私は私が何を得る$xpath_resultset

$my_content = $xpath_resultset->item(0); 

で何を得るのitem(0)メソッドは、オブジェクト(文字列ではありません)$で行います文字列にエコーやsettype()を行うことができるmy_contentですが、結果として完全に取り除かれたマークアップがありますか?

どうすればいいですかすべて div class = 'text'からここに来ますか?

+0

あなたは 'saveXML' /' saveHTML'メソッドを試しましたか? –

+0

致命的なエラー:17行目のC:\ wamp \ www \ 3 \ test.phpの未定義のメソッドDOMElement :: saveHTML()を呼び出してください... –

+0

PHPをアップグレードするか、代わりに 'saveXML'を使用してください。 –

答えて

29

だけDOMDocument::saveHTML方法にノードを渡す:これは、あなたにその特定のDOMNodeをし、そのすべての子の文字列表現を与える

$htmlString = $dom->saveHTML($xpath_resultset->item(0)); 

+0

真。答えてくれてありがとう。 –

+6

その方法にはPHP 5.3.6が必要ですが、代わりにPHP 5のみが必要なDOMDocument :: saveXMLを使用する方法もあります。 – Kyle

関連する問題