![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 233 Pomógł: 87 Dołączył: 6.03.2009 Ostrzeżenie: (40%) ![]() ![]() |
Witam, mam taki oto kod HTML:
Szukam sposobu aby swobodnie przezeń traversować. Niestety, kod nie jest prawidłowym XMLelem ani HTMLem. Po pierwsze w paragrafach nie mogą znajdować się elementy blokowe i dom:document podczas ładowania dokumentu wyrzuca DIV'y na koniec BODY, w efekcie obiekt DOM jest inny niż mogłoby wynikać z kodu HTML i staje się praktycznie bezużyteczny. Natomiast SimpleXML informuje że element input jest nieprawidłowo zakończony, oczywiście ma racje. Jak zatem ugryść taki dokument? Z góry dzięki za pomoc. Ten post edytował wNogachSpisz 12.02.2012, 12:40:57 |
|
|
![]()
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%) ![]() ![]() |
Spróbuj tego : http://php.net/manual/en/domdocument.loadhtml.php
Ta funkcja wczytuje kod html do obiektu DOMDocument. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 233 Pomógł: 87 Dołączył: 6.03.2009 Ostrzeżenie: (40%) ![]() ![]() |
Spróbuj tego : http://php.net/manual/en/domdocument.loadhtml.php Ta funkcja wczytuje kod html do obiektu DOMDocument. Rozumiem że czytanie pytań boli, ale może zrobisz wyjątek i zadasz sobie ten trud. Tylko ten jeden raz, proszę, zrób to dla mnie. Stwierdziłem że najlepiej pogodzić się ze zmianami jakie wprowadza DOM:Document. Czyli robie tak ze ładuje nieprawidłowy HTML przez loadHTML, potem zapisuje przez saveHTML i trawersuje po takim jaki został zwrócony. Nie wiem dlaczego od razu na to nie wpadłem (IMG:style_emoticons/default/tongue.gif) Ten post edytował wNogachSpisz 13.02.2012, 01:20:26 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 381 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Możesz przepuścić zawsze przez html tidy. A input w HTML5 jest prawidłowy.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 233 Pomógł: 87 Dołączył: 6.03.2009 Ostrzeżenie: (40%) ![]() ![]() |
Możesz przepuścić zawsze przez html tidy. A input w HTML5 jest prawidłowy. Nie natąpi żaden postęp, przeciwnie, program się skomplikuje i zwolni. Na domiar złego nie ma pewności, że tidy zmodyfikuje każdy dokument w ten sam sposób co DOM:Document. Także albo czegoś nie rozumiem, albo to co proponujesz nie ma najmniejszego sensu. Ten post edytował wNogachSpisz 13.02.2012, 10:46:07 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 10 Dołączył: 30.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jak na moje oko to przedewszystkim musisz dojść do postaci XML-a. Jak już będziesz miał XML-a to już będzie z górki. Będziesz mógł przestawiac/wywalać/dodawać elementy jak tylko będziesz chciał.
Swego czasu napisałem klasę do naprawiania zepsutych XML-i. XML-e które otrzymywałem były urwane (czyli najczęściej tagi nie były podomykane). Rozwiązałem ten problem w taki oto sposób:
Klasa ta nie jest dokładnie przetestowana, prawdopodobnie będziesz musiał ją dostosować do swoich potrzeb. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 22:03 |