![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
witam,
napisałem prostą funkcję usuwającą wybrane elementy z pliku xml
jednak pojawił się mały problem otóż zmienna $element przekazywana jako parametr jest stringiem więc zapis $element[$i] odwołuje się do litery a nie elementu tablicy i tu powstaje pytanie w jaki sposób mogę się odwołać do wybranego elementu tablicy a nie litery ![]() |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 301 Pomógł: 25 Dołączył: 15.07.2007 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
![]() ![]() Ten post edytował bmL 14.04.2010, 14:45:05 -------------------- Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
nie pomogło
Warning: main::delete() [main.delete]: Node no longer exists in main.php on line 42 linia 42 to if($xml->$$element[$i]->attributes()->name==$name) przy pojedynczym dolarze jest dokładnie tan sam błąd Ten post edytował sazian 14.04.2010, 15:26:09 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
Kod SimpleXMLElement Object
( [controller] => Array ( [0] => SimpleXMLElement Object ( [@attributes] => Array ( [name] => nowy ) ) [1] => SimpleXMLElement Object ( [@attributes] => Array ( [name] => nowy2 ) ) ) ) element: controller name: nowy2 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
już tak próbowałem
![]() foreach tworzy dodatkową zmienną więc unset usuwa tą dodatkową zmienną a nie element na który wskazuje |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Rozumiem, że plik xml wygląda tak:
Jeśli tak, to pętla, która usunie odpowiedni węzeł powinna wyglądać tak: Masz rację co do poprzedniego kodu. "Popełniłem" niedopatrzenie. Wyjaśnienie dla tego rozwiązania. Otóż zmienna $element to nic innego, jak nazwa, ale nazwa tablicy. Kod $xml->$element odwołuje się w tym przypadku do pola obiektu $xml o nazwie $element, jednak nie odwołuje się on do tablicy (wartości), jaka pod tą nazwą jest zapisana. Aby się do tej tablicy odwołać musimy użyć nawiasów { i }. Kod $xml->{$element} odwołuje się do tablicy, zapisanej w polu obiektu $xml o nazwie $element. Ten post edytował mortus 14.04.2010, 17:49:21 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
tego mi właśnie brakowało
![]() dzięki wielkie ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 05:16 |