![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 651 Pomógł: 3 Dołączył: 31.01.2011 Skąd: Warszawa Ostrzeżenie: (10%) ![]() ![]() |
Witam serdecznie,
nie mogę ogarnąć dość może kontrowersyjnej dla niektórych rzeczy, mianowicie normalnie i w innych przypadkach usuwając klucze z pliku xml funkcją poniżej, przy usunięciu ostatniej ladnie mi "biutifuje" plik, natomiast przy usuwaniu plików (i informacji o plikach w xml) zostawia dziury po usuniętych nodach:
a tu cala klamerka
generalnie cały problem polega na tym, że kiedy zostaja usuniete wszystkie pliki robi sie dziura: - przyklad pierwszy - mam 5 plikow - usune 4 z nich, wszystko jest ok, jak usune ostatni (piaty) robi sie dziura jako jeden wiersze w pliku xml. - przyklad drugi - mam 5 plikow, usune wszystkie 5 - robi sie dziurna na 5 wierszy w pliku xml (chyba ze w miedzyczasie dodam jakies pliki - to wypelnia ta dziure, np dodam 3 pliki, zostanie dziura na 2 wiersze... @EDIT Podejrzewam - mam pewność że chodzi o tą funkcję - znalazłem w necie, że jedni mówią żeby preservewhitespace było na false, inni true - generalnie nei ma to znaczenia bo zawsze przy usunieciu wszystkich dzieci konkretnego klucza zostają jakieś "\n" i stad nie zmienia się na "<rodzic/>" tylko zostaje "<rodzic </rodzic>" i TYLKO w przypadku usunięcia wszystkich choldren, czyli pozostawienia pustego rodzica... Ten post edytował shpaque 12.01.2021, 14:25:04 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Zerknij na to: https://www.php.net/manual/en/libxml.constants.php#102279
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 651 Pomógł: 3 Dołączył: 31.01.2011 Skąd: Warszawa Ostrzeżenie: (10%) ![]() ![]() |
to zauwazylem, ale nie bardzo mi to cos pomaga, nawet na sztywno jak zrobilem to nadal zapisuja sie te biale znaki - byc moze problem jest w samym usunieciu dziecka z XPATH'a? no ale w sumie dopoki nie usunie sie ostatniego w rodzicu - wszystko jest w porzadku..
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Ale dodałeś tą flagę przy wczytywaniu do DOMDocument?
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 651 Pomógł: 3 Dołączył: 31.01.2011 Skąd: Warszawa Ostrzeżenie: (10%) ![]() ![]() |
tak, nawet zamienilem simplexml na domdocument i probowalem dodac i poznie jskasowac element na sztywno bez funkcjo ale nic sie nie zmienilo
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
A jak to działa? Przeglądasz plik załadowany do $loadPageDataBase, a usuwasz węzły w innych plikach, które ładujesz odrębnie (dom_import_simplexml) na podstawie wartości węzłów z $loadPageDataBase.
-------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 651 Pomógł: 3 Dołączył: 31.01.2011 Skąd: Warszawa Ostrzeżenie: (10%) ![]() ![]() |
tak dzial ze napisalem sobie osobny php ze zdublowanym xml i zrobilem to samo co mam w duzej klamrze - czyli zaimportowalem domem plik, edytowalem go i zapisalem funkcja zmieniona z flagą. I dalej zostały mi dziury
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
To może najpierw zacznij od uproszczenia kodu.
Do DOMDocument możesz załadować XML, możesz też wykonywać zapytania i możesz też usuwać węzły. Całość w ramach obsługi jednego obiektu. Zobaczysz co wtedy otrzymasz. https://kawalekkodu.pl/the-tag-is-out-there...domxpath-s01e01 https://kawalekkodu.pl/the-tag-is-out-there...domxpath-s01e03 -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 651 Pomógł: 3 Dołączył: 31.01.2011 Skąd: Warszawa Ostrzeżenie: (10%) ![]() ![]() |
rozwiązałem problem w prosty znaleziony sposób - zmieniłem funkcję na:
a zamiast $load... -> asXML(); i pozniej calego upiekszania pliku wystarczylo wywolanie tej funkcji, czyli calosc wyglada tak i dziala genialnie:
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 12:02 |