我正在使用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;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的内容任何想法!!
答案 0 :(得分:0)
修改强>
如果您只对直接文本内容感兴趣,请修改您的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>';
现在结果非常具体到示例:
如果存在多个直接文本节点,则不会显示该节点。要通过DOMNodeList foreach
执行$b
并回显每个选定的节点值。