![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Hejka, załóżmy iż mam tekst:
Cytat PRZED<div class="aa"><div>ola<div>ss</div></div></div>ala</div>PO<div>DAAALEJ</div> Z tego tekstu chce wyciągnąć całego diva wraz z zawartoscią, ktory ma klasę "aa", czyli cos takiego: Cytat <div class="aa"><div>ola<div>ss</div></div></div>ala</div> Nie sugerujcie sie tekstem PRZED czy tez PO, gdyz to mogą byc dowolne znaki. Kombinuje i kombinuje i nic nie moge wymyslic. Na razie mam cos takiego: Kod /<div class="aa">.*(<div>.*\1.*<\/div>).*<\/div>/g; Ale niestety wyciaga mi to: Cytat <div class="aa"><div>ola<div>ss</div></div></div>ala</div>PO<div>DAAALEJ</div> Pomóżcie ps: wyrażenie te bede obsługiwal w js. tekst moze skladac sie z wielu takich divow o danej klasie i chce je wszystkie wyciągnąc ps2: oczywiscie w tym divie moze juz nie byc innych divow, moze byc tylko sam tekst |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 470 Pomógł: 75 Dołączył: 21.09.2005 Skąd: że znowu Ostrzeżenie: (0%) ![]() ![]() |
powinno łapać chyba bez
Kod ala</div> bo ta ala znajduje sie po za zamknięciem diva o który Ci chodzi
|
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
sorki, pomylilem sie w stringu. powinien wygladac tak:
Cytat PRZED<div class="aa"><div>ola<div>ss</div></div>ala</div>PO<div>DAAALEJ</div> Problem nadal aktualny. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 597 Pomógł: 30 Dołączył: 19.02.2003 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Wg mnie się nie da. Bo na jakiej zasadzie wyrażenie regualne ma wiedzieć, który div jest końcowy? Musiałoby zliczać otwarte i zamknięte elementy, a o czymś takim nie słyszałem.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 470 Pomógł: 75 Dołączył: 21.09.2005 Skąd: że znowu Ostrzeżenie: (0%) ![]() ![]() |
Kod <div class="aa">.*?(<div>.*?(<div>.*?</div>.*?)?</div>).*?</div> troche prowizorka - ale działa - przynajmniej z podanym przykładem (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Ten post edytował devnul 12.04.2007, 14:29:15 |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat przynajmniej z podanym przykładem no wlasnie, to byl tylko przyklad. Dla takiego przykladu:Cytat PRZED<div class="aa"><div>ola<div>ss</div></div><div>przedala</div>ala</div>PO<div>DAAALEJ</div> Juz nie zadziala (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 31 Dołączył: 13.11.2006 Skąd: się znamy? Ostrzeżenie: (0%) ![]() ![]() |
Hmm wykorzystując regexy w ten sposób chyba się nie da... żeby był to kod uniwersalny.
Ja bym to proponował eval'ować na tablice tylko nie mam narazie pomysłu jak się uporać z dodatkowym info w postaci treści w pregach. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 470 Pomógł: 75 Dołączył: 21.09.2005 Skąd: że znowu Ostrzeżenie: (0%) ![]() ![]() |
Kod <div class="aa">.*?(<div>.*?(<div>.*?</div>.*?)*</div>.*?)*</div> ale to już tak (z poprzednim tez dziala;) ) ;]@empathon: jak xmla parsowac mozna - ale to wymaga stricte czystego kodu - bez zupy Ten post edytował devnul 12.04.2007, 14:38:51 |
|
|
![]()
Post
#9
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat ale to już tak (z poprzednim tez dziala;) ) ;] hehe, no tak, ale jak mowilem te divy moga sie zagniezdzac dowolnie gleboko, czyli np. tak:Cytat PRZED<div class="aa"><div>ola<div>ss <div>xxxx</div> </div></div><div>przedala</div>ala</div>PO<div>DAAALEJ</div> Dlatego kombinowalem tak: Cytat <div class="aa">.*?(<div>.*?\1.*?<\/div>)*.*?<\/div> z ta \1 myslac ze lyknie zagniezdzanie, ale cos nie lyka
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 470 Pomógł: 75 Dołączył: 21.09.2005 Skąd: że znowu Ostrzeżenie: (0%) ![]() ![]() |
nie łyka bo za \1 wstawia to co znalazł(by) w pierwszym wyrazie czyli zagłębien musialoby byc nieskonczenie wiele
a jest opcja żeby zrobić to troche inaczje? czy musi być jedno wyrażenie regularne? Ten post edytował devnul 12.04.2007, 15:00:28 |
|
|
![]()
Post
#11
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat a jest opcja żeby zrobić to troche inaczje? czy musi być jedno wyrażenie regularne? Moze byc inaczej, byleby mi tylko lyknelo wszystkie takie divy. Bo ja tu w przykladzie pokazalem tylko takiego jednego zamoteanego, ale ich moze byc wiecej (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#12
|
|
Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
A czy dopuszczalna jest droga na skróty? - jQuery
Kod var e = $('div.aa').html(); console.debug(e); pozdr. |
|
|
![]()
Post
#13
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@siemakuba no popatrz, rozwiązanie mialem przed oczami (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Wszakze z jquery nie bede korzystal, ale fakt ze moge to na DOMObject zamienic bardzo mnie urządza (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
dzieki za myśl |
|
|
![]()
Post
#14
|
|
Administrator planeta/IRC Grupa: Przyjaciele php.pl Postów: 385 Pomógł: 0 Dołączył: 19.04.2003 Skąd: Zabrze Ostrzeżenie: (0%) ![]() ![]() |
Do takich rzeczy został stworzony XPath (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Kod //div[@class='aa'] i pozamiatane (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 11:57 |