我需要为下面的代码
找出结束标记<div class="emph"><div class="level"> Some testing </div></div>
在此我需要为父DIV找到正确的标签。我的目标是在结束DIV之前添加类名,如下所示
<div class="emph"><div class="level"> Some testing <!--level--></div><!--emph--></div>
为此,我需要找到确切的关闭父DIV。
可以在PHP中实现吗?
答案 0 :(得分:1)
您可以使用simpleXML(或任何其他XML类) - 为每个div元素读取它的类并在节点内容的末尾附加。它不是完全找到结束标记,而是达到您指定的目标。
示例代码:
$dom = new DOMDocument;
$dom->loadXML($xml);
$divs = $dom->getElementsByTagName('div');
foreach ($divs as $div) {
if ($div->getAttribute('class')!='') {
$div->nodeValue = $div->nodeValue.'<!--'.$div->getAttribute('class').'-->';
}
}
echo $dom->saveXML();
答案 1 :(得分:0)
在PHP中打印divs
时,请保留数组$div_array = array()
一旦你打开一个div做:
array_push($div_array, 'emph'); // or 'level' depending on the classname
只要您准备打印结束标记,请通过以下方式询问最后一个div的值:
array_pop($div_array);
// for example
echo '<!-- '.array_pop($div_array).' -->';
弹出数组也会删除数组的最后一个条目。这就是我想要的。