Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php和xpath获取父元素的内部HTML_Php_Xpath_Innerhtml - Fatal编程技术网

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

使用php和xpath获取父元素的内部HTML,php,xpath,innerhtml,Php,Xpath,Innerhtml,我想获得所有内容,包括父元素的标记,比如: $imgs = $xpath->query('//img'); echo $imgs->item(0)->parentNode->innerHTML; 当然,innerHTML属性不存在。最相似的属性是innerText,它只包含没有标记的文本。我真的需要HTML。有没有一种轻松的方法可以实现这一点?您可以使用另一个XPath表达式(而不是选择父节点和innerHTML),/。/node()来选择父元素 使用node()非常重

我想获得所有内容,包括父元素的标记,比如:

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

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

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

使用
node()
非常重要,因此您可以同时获得元素和文本节点


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

您是否尝试过
innerXml
nodeValue
?是的,它们与textContent相同。解决方案是:echo$dom->saveXML($imgs->item(0)->parentNode);