web-dev-qa-db-ja.com

DOMXPath :: query()メソッドから完全なHTMLを取得する方法は?

手つかずのコンテンツで特定のdivを抽出したいドキュメントがあります。私がやります:

_$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_で得たものに対してitem(0)メソッドを実行します

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

私が得るのは、文字列にエコーまたはsettype()できるオブジェクト(文字列ではない)$ my_contentですが、結果として、完全に削除されたマークアップが得られますか?

ここでdivclass = 'text'からallを取得するにはどうすればよいですか?

13

ノードを DOMDocument::saveHTML メソッド:

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

これにより、その特定のDOMNodeとそのすべての子の文字列表現が得られます。

42
Tim Cooper