目前的结构如
<div class="...">
//more html
<div class="message-right">
<div class="item1"> //more html </div>
<div class="item2"> //more html </div>
<div class="item3"> //more html </div>
</div>
//more html
</div>
我希望能够在类'message-right'中获取html内容,并删除最后一个子节点。 (在这种情况下'item3')
我应该留下'item1'和'item2'
中的html到目前为止我已经
了$dom = new DomDocument();
@$dom->loadHTML($html);
$finder = new DomXPath($dom);
$classname = "message-right";
$nodes = $finder->query("//*[contains(@class, '$classname')]");
//this is where I am stuck, need to remove the last child, 'item3'
//this returns the html from 'message-right'
$html = $nodes->item(0)->c14n()
答案 0 :(得分:0)
获取最后一个子元素(XPath将使这更容易)并删除它。
$delete = $finder->query("./*[last()]", $nodes->item(0))->item(0);
$delete->parentNode->removeChild($delete);
根据您真正需要的内容,您可能希望直接使用
获取(并随后删除)该元素//*[contains(@class, '$classname')]/*[last()]