使用 php 和 xpath 获取父元素的内部 HTML

Posted

技术标签:

【中文标题】使用 php 和 xpath 获取父元素的内部 HTML【英文标题】:Get inner HTML of parent element with php and xpath 【发布时间】:2013-08-10 07:49:27 【问题描述】:

我想获取所有内容,包括父元素的标签,比如说:

$imgs = $xpath->query('//img');
echo $imgs->item(0)->parentNode->innerhtml;

当然,innerHTML 属性不存在。最相似的属性是innerText,它只包含没有标签的文本。我真的需要 HTML。有没有一种轻松的方法来实现这一目标?

【问题讨论】:

你试过innerXmlnodeValue吗? 是的,它们与 textContent 相同。解决方法是:echo $dom->saveXML($imgs->item(0)->parentNode); 【参考方案1】:

您可以使用另一个 XPath 表达式(而不是选择父节点和 innerHTML)./../node() 来选择父元素。

使用node() 很重要,因此您可以获得元素和文本节点。

如果你知道<img/>元素只有一个,你也可以使用//*[img]/node()

【讨论】:

以上是关于使用 php 和 xpath 获取父元素的内部 HTML的主要内容,如果未能解决你的问题,请参考以下文章

使用 DOMDocument PHP 获取 Xpath 父节点?

如何使用simpleXML(php)通过xpath获取父节点

使用 XPath 和 Selenium for Java 获取下一个兄弟元素

xpath使用属性元素定位,包含 and ornot

XPATH节点获取

建议在Protractor中定位父元素的方法