Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 6.08.2009 Ostrzeżenie: (0%)
|
Witam
Na wstępie chciałbym napisać że to mój pierwszy dzień z xml-em więc jestem zielony. Mam prosty pliczek xml i chciałbym do niego dopisać element, siedzę w manualu php od godziny patrze na klasy xmlWriter, xmlReader, simpleXML ale nie mogę znaleźć przykładu dopisywania elementów do pliku xml wszędzie tylko pobieranie danych. Jaką funkcją można najprościej dopisać element do xml-a? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 36 Dołączył: 2.04.2008 Ostrzeżenie: (0%)
|
No jak w XMLWriter nie ma opisu jak dodawać elementy?? (IMG:style_emoticons/default/biggrin.gif) Zainteresuj się tym: http://pl.php.net/manual/en/function.xmlwr...ite-element.php albo skorzystaj z DOMDocument, DOMXpath, jeśli chcesz w łatwy sposób wyszukiwać elementy za którymi, bądź przed którymi będzie dodawany nowy element.
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 6.08.2009 Ostrzeżenie: (0%)
|
No ok ale gdzie w tym przykładzie w komentarzu jest otwierany istniejący już plik xml tam jest użyte xmlwriter_open_memory(), a według manuala ta funkcja nie przyjmuje żadnych argumentów więc skąd ma wiedzieć do jakiego xml-a dopisywać no i która linia zapisuje zmodyfikowany plik ?
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 36 Dołączył: 2.04.2008 Ostrzeżenie: (0%)
|
Pewnie outputMemory(), w końcu przy niej stoi jak byk: returns current buffer. Czyli robisz miks file_put_contents i tej właśnie metody. Wczytujesz cały plik natomiast XMLReaderem, np. do tablicy. Jak znasz php i potrafisz myśleć, to nic więcej ci nie jest potrzebne (IMG:style_emoticons/default/smile.gif) . Jednak jak dla mnie to za dużo kombinacji. DOMDocument razem z DOMXpath tworzą przepotężny i wszechwygodny tandem, a nazwy funkcji i ich opisy są tak jasne jak to tylko możliwe.
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 6.08.2009 Ostrzeżenie: (0%)
|
OK
Sam sobie nie poradzę na początku, masz może link do jakiegoś łatwego tutoriala. PHP znam "dobrze" ale obsługi xml-a dopiero chcę się nauczyć. Podam może co chcę zrobić. Mam takiego xml-a zapisanego jako galeries.xml
i teraz chcę dodać nową galerię powiedzmy taką:
Jak można to najprościej zrobić? Przyjrzałem się klasie DOMDocument rzeczywiście jest lepiej opisana ale umiem dodawać elementy jako elementy główne bez dodawania w hierarchii. (IMG:style_emoticons/default/sad.gif) |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 36 Dołączył: 2.04.2008 Ostrzeżenie: (0%)
|
To spójrz jeszcze tu: http://pl.php.net/manual/pl/domnode.appendchild.php . Wyciągasz tylko roota, czyli w tym wypadku <package />, tworzysz nowy element za pomocą DOMDocument->createElement('nowy') i wypełniasz go tak jak to manual przykazał, albo tak jak chcesz (IMG:style_emoticons/default/winksmiley.jpg) . Potem używasz DOMNode->appendChild() do dodania. Przy pracy z tymi klasami na prawdę nie potrzeba wielkiej filozofii, pobaw się a jestem przekonany, że po chwili będzie tworzył i edytował takie xml'e o jakich się w3 nie śniło (IMG:style_emoticons/default/winksmiley.jpg) .
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 6.08.2009 Ostrzeżenie: (0%)
|
Jestem początkujący :/
Co to znaczy wyciągasz roota czyli package? tzn. chyba wiem o co Ci chodzi tylko jak to zrobić znaczy jak go wyciągnąć napisz mi tylko kod jak dodać nowy element do elementu package, wczytywanie i zapisywanie ogarniam - plizzz bo kombinuje już z różnymi klasami i zawsze czegoś brak ... (IMG:style_emoticons/default/sciana.gif) na przykład robię tak (pochwale się co umię (IMG:style_emoticons/default/smile.gif) ):
wszystko pięknie ale element nie jest dodawany do package, tak jak chcę. A jak robię tak:
to wywala błędy (IMG:style_emoticons/default/sad.gif) Ten post edytował ceieneka 2.02.2010, 13:16:10 |
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 36 Dołączył: 2.04.2008 Ostrzeżenie: (0%)
|
Uprzedzę Twoje pytania - jak chcesz dodać w elemencie test kolejne dziecko, to robisz mniej więcej tak (nie sprawdzałem, ale powinno grać )):
Ten post edytował 230005 2.02.2010, 14:28:28 |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 6.08.2009 Ostrzeżenie: (0%)
|
O dzięki bardzo, o to chodziło. Sorki że zginąłem na dwa dni...
|
|
|
|
![]() ![]() |
|
Aktualny czas: 9.06.2026 - 10:40 |