domxpath-如何仅获取父标记而不是子标记的内容
一、 我使用domxpath查询仅获取父标记的内容,即td[class='s'],而不包括嵌套在该td中的div内容,如下代码所示domxpath-如何仅获取父标记而不是子标记的内容,dom,xpath,Dom,Xpath,一、 我使用domxpath查询仅获取父标记的内容,即td[class='s'],而不包括嵌套在该td中的div内容,如下代码所示 <?php $second_trim='<td class="s" style="line-height:18px;">THIS TEXT IS REQUIRED and <div id="a" style="display:none;background-color:black;border:1px solid #ddd;p
<?php
$second_trim='<td class="s" style="line-height:18px;">THIS TEXT IS REQUIRED and <div id="a" style="display:none;background-color:black;border:1px solid #ddd;padding:5px;color:black;">THIS TEXT IS NOT REQUIRED </div></td>';
$dom = new DOMDocument();
$doc->validateOnParse = true;
@$dom->loadHTML($second_trim);
libxml_clear_errors();
$xpath = new DOMXpath($dom);
$b = $xpath->query('//td[@class="s"]');
echo "<p style='font-size:14px;color:red;'><b style='font-size:18px;color:gray;'>cONTENT :- </b>".$b->item(0)->nodeValue."</p>";
?>
那么,如何删除div标签的内容并只获取td的内容呢 编辑
如果您只对直接文本内容感兴趣,请修改xpath查询:
$b = $xpath->query('//td[@class="s"]/text()');
echo '<p style="font-size:14px;color:red;">'
.'<b style="font-size:18px;color:gray;">cONTENT :- </b>'
.$b->item(0)->nodeValue
.'</p>';
现在,结果非常具体,具体到示例中:
如果存在多个直接文本节点,则不会显示该节点。为此,foreach通过DOMNodeList$b并回显每个选定的节点值