![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 22.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Posiadam plik html, który po eliminacji niepotrzebnych znaczników, składa sie głownie z <div> i <span>. Div'y i span'y mają jakieś atrybuty bądź nie. Wygląda to mniej więcej tak:
Jest to pewien katalog kategorii. W <div> jest kategoria głowna, a w <div class="mg1"> jest kategoria podrzędna. Reszta div'ów mnie nie interesuje. Muszę powyciągać tylko te dwa div'y a dokładnie <span> z tych divów. Co najgorsze chyba, to fakt taki że ten plik html zajmuje jakies 4mln znaków. Próbowałem podejść do tego wyrażenie regularnym: ale wtedy pobiera wszystkie div'y. Udało mi się to w miarę osiągnąc poprzez XML:
Funkcja ta działa dla małego pliku index.html, niestety nie działa przy większym. Dostaję błąd: error: Excessive depth in document: 256 use XML_PARSE_HUGE option Co radzicie ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 109 Pomógł: 9 Dołączył: 12.03.2007 Skąd: kraków/tarnobrzeg/baranów/suchorzów Ostrzeżenie: (0%) ![]() ![]() |
Tak to możesz zrobić za pomocą wyrażeń regularnych. W zaproponowanym kodzie stopniowo wycinane jest to co jest zbędne. Oczywiście pewnie się da stworzyć jedno większe wyrażenie ale nie chciało mi się zbytnio kombinować. Spróbuj tego. Czy to jest jednorazowa operacja przy przetworzeniu tego pliku którą musisz wykonać ? -------------------- Każdy z was jest łodzią w której Może się z potopem mierzyć Cało wyjść z burzowej chmury Musi tylko w to uwierzyć! |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 11:05 |