有没有办法可以从HTML字符串中检索所有纯文本节点的数组?我希望它能独立检索'嵌套'元素,所以像这样的字符串:
<p>This is a <b>nested <i>HTML</i> tag<b>...</p>
将作为单独的元素检索为This is a
,nested
,HTML
,tag
和...
。
$doc = new DOMDocument();
$doc->loadHTML($contents);
$doc->loadHTML("<p>not in the brackets..</p>");
$xpath = new DOMXPath($doc);
$textnodes = $xpath->evaluate('//text()');
echo '<pre>'.print_r($textnodes,1).'</pre>';die;
这给了我:
DOMNodeList Object
(
)
我之前从未使用任何DOM对象 - 我的XPath也不是很好 - 所以我觉得这里的水非常缺水!任何帮助将不胜感激。
答案 0 :(得分:0)
XPath返回一个DOMNodeList,需要正确评估。以下是基于标记的示例:
$xpath = new DOMXpath( $templateDOM );
$xpath->registerNamespace( "fcm", "http://www.w3.org/1999/xhtml" );
$entries = $xpath->query( "//img" );
foreach( $entries as $entry ) {
$newVar = array(
'src' => @$entry->attributes->getNamedItem( 'src' )->nodeValue,
'title' => $entry->attributes->getNamedItem( 'title' )->nodeValue,
);
...
}