![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 295 Pomógł: 7 Dołączył: 26.03.2004 Skąd: Opole Ostrzeżenie: (0%) ![]() ![]() |
Pewnie dla wiekszości z was zagadnienie banalne ale potrzebuję pomocy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Chce załadować dane XML do jakiejś tablicy czy obiektu tak abym mógł się po niej poruszać na zasadzie
bo zwykłe wpakowanie danych przez xml_parse_into_struct zwraca strukturalnie słaby materiał (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Moja intencją jest po prostu wydobycie danej gałęzi i przeniesienie w inne miejsce. Dzięki za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Nic prostszego - simpleXML - tworzy swój obiekt i pozwala nawigować jak Ci się żywnie podoba.
Pozdrawiam. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 295 Pomógł: 7 Dołączył: 26.03.2004 Skąd: Opole Ostrzeżenie: (0%) ![]() ![]() |
Podoba mi sie to ale martwi mnie jedna rzecz. Prosze zobaczyć co dzieje się z tagami pliku worda:
Oryginalny XML worda zawiera:
natomiast po przechwyceniu XML'a przez SimpleXML wygląda to tak:
To że z pustych tagów zrobił tagi pojedyncze to spoko, ale poginęły nazwy elementów worda - znikneło wyrażenie "w:" , które jednak dla worda jest istotne. I czemu tak się dzieje? |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
simpleXML nie rozpoznaje namespaców (u ciebie to wlasnie w:).
Poszukaj jakiejs klasy opartej na DOM, moze one bedą to respektowaly, gdyz sam DOM rozpoznaje namespacy. Wiem, gdyz sam niedawno przenioslem sie na DOM spowodow wlasnie namespacow |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 295 Pomógł: 7 Dołączył: 26.03.2004 Skąd: Opole Ostrzeżenie: (0%) ![]() ![]() |
Ot i szok. Nie wiedziałem co to namespaces, a napisałem program rozwalający całą strukturę pliku XML'owego worda z 3 linijkowego krzaczora w piękna drzewiastą strukturę za pomoca samego xml_parse_into_struct i po powrotnym zrzuceniu wszystkiego z tabelki wciąż się otwiera w wordzie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) !
Jak usłyszałem DOM aż mi ciary przeszły ... naprawde nie ma nic prostszego? Przecież na boga to tylko pliki tekstowe ze znacznikami ... |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Jak usłyszałem DOM aż mi ciary przeszły ... naprawde nie ma nic prostszego? DOM nie jest taki zly (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ale jak mowilem, przejrzyj klasy, chociazby na phpclasses.org, ktore wykorzystują DOM. Zapewne są przyjemniejsze w uzyciu a i moze namespacy zachowują. Wynikami podziel sie w tym topicu bo sam jestem ciekaw. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 295 Pomógł: 7 Dołączył: 26.03.2004 Skąd: Opole Ostrzeżenie: (0%) ![]() ![]() |
Już szukam. Dam znać (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Muszę przyznać, że jestem troche zawiedziony całym zamieszaniem wokół XML, a raczej odczuciem chaosu spowodowanym brakiem (jak dla mnie) przejrzystych ścieżek poznania aparatu jego obsługi. rzeczywiście znalazłem wiele klas opartych na DOM XML, ale za kazdym razem i tak trzeba było ingerować w logikę DOM więc bez znajomości DOm XML taka klasa mi sie nie przyda. Czytanie o DOM XML na php.net przypomina mi tą reklamę z " .... ntfs z jakims lewarowaniem" na co klient wybałusza gały ... :/ Po prostu o ile sam XML jest strukturalnie poukładany o tyle na ironię dokumentacja o narzędziach do niego jest chaotyczna. Reasumując. Przejrzałem na php.net przykłady oparte na klasycznych funkcjach XML'owych php, i po drobnych modyfikacjach mam to czego chciałem. Mam dwie klasy - jedna odpowiada za odwzorowanie wyrażenia xml na hierarchiczną tablicę i drugą o działaniu odwrotnym tak żeby zmodyfikowaną tablice można było z powrotem zapisac jako XML. Nie znam się specjalnie na XML. Testowałem je na plikach worda zapisanych w formacie XML i działają. Poniżej klasy: xml do tablicy
z tablicy do XML:
Mając takie wyrażenie XML:
dostajemy taką tablicę:
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 504 Pomógł: 2 Dołączył: 31.03.2006 Skąd: Londyn Ostrzeżenie: (0%) ![]() ![]() |
Fajne, tylko dlaczego az dwie klasy ? Mozna to zawrzec w jednej paczce i bedzie wygodniej.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 295 Pomógł: 7 Dołączył: 26.03.2004 Skąd: Opole Ostrzeżenie: (0%) ![]() ![]() |
Oczywiście, tak jakoś wyszło (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Własnie użyłem tych klas do załadowania do tablicy dokumentu worda w formacie XML z załączonym zdjęciem, a potem z powrotem zrzuciłem wszystko do pliku xml i działa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 20:48 |