-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

divsPHP での印刷中に配列を保持$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 に答える