我需要为下面的代码计算结束标记
<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中实现吗?
您可以使用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();
在PHP中打印divs
时,保留一个数组$div_array = array()
一打开div do:
array_push($div_array, 'emph'); // or 'level' depending on the classname
一旦您准备好打印结束标记,就通过以下方式询问最后一个div的值:
array_pop($div_array);
// for example
echo '<!-- '.array_pop($div_array).' -->';
弹出数组还会删除数组的最后一个条目。我想这正是你想要的。