如何从DOMXPath :: query()方法获取完整的HTML?

Mil*_*vić 13 php domdocument

我有文件,我想从中提取具有未触及内容的特定div.我做:

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

和xpath查询:

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

现在我按照我的item(0)方法做了一些方法$xpath_resultset

$my_content = $xpath_resultset->item(0);
Run Code Online (Sandbox Code Playgroud)

我得到的是对象(不是字符串)$ my_content我可以回显或settype()到字符串,但结果我得到的是完全剥离的标记?

该怎么做才能从div class ='text' 获取所有内容?

Tim*_*per 41

只需将节点传递给DOMDocument::saveHTML方法:

$htmlString = $dom->saveHTML($xpath_resultset->item(0));
Run Code Online (Sandbox Code Playgroud)

这将为您提供该特定DOMNode及其所有子节点的字符串表示形式.

  • 该方法需要PHP 5.3.6,另一种方法是使用DOMDocument :: saveXML,它只需要PHP 5. (7认同)