-1

我需要找出下面代码的结束标签

<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 中实现吗?

4

2 回答 2

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();
于 2012-08-02T10:29:34.833 回答
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).' -->';

弹出数组也会删除数组的最后一个条目。我想这就是你想要的。

于 2012-08-02T10:55:24.203 回答