Listedeki sıradanifade hedef son ana li

0 Cevap php

CSS veya JavaScript kullanarak olmadan - I ya-olmayabilir çeşitli pozisyonlarda sublists içerebilir bir listedeki son top level LI başlangıç ​​etiketi hedef gerekir.

Bu konuda yardımcı olabilir basit / zarif bir sıradanifade var mı? Ben w / onları hiçbir gurusu değilim, ama tüm orta metni seçip olduğumda açgözlü / non-açgözlü seçiciler için ihtiyaç belirir (. *) / Iç içe listeleri olarak (. +) Değişiklikler eklendi ve etrafında taşınır listesi - ve bu beni atıyor.

$pattern = '/^(<ul>.*)<li>(.+<\/li><\/ul>)$/';
$replacement = '$1<li id="lastLi">$3';

Belki daha kolay bir yaklaşım var? LI hedef ve sonra geri dönüştürmek için XML dönüştürme?

ie: Single Element

<ul>
    <li>TARGET</li>
</ul>

Birden Elemanları

<ul>
    <li>foo</li>
    <li>TARGET</li>
</ul>

Sonuna kadar iç içe Listesi

<ul>
    <li>
        foo
        <ul>
            <li>bar</li>
        </ul>
    <li>
    <li>TARGET</li>
</ul>

Sonunda iç içe Listesi

<ul>
    <li>foo</li>
    <li>
        TARGET
        <ul>
            <li>bar</li>
        </ul>
    </li>
</ul>

0 Cevap