Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] SimpleXML usuwanie rekordów
pitu
post
Post #1





Grupa: Zarejestrowani
Postów: 476
Pomógł: 96
Dołączył: 10.04.2008
Skąd: Koszalin

Ostrzeżenie: (0%)
-----


Posiadam dokument .xml o strukturze:
  1. <ogloszenia>
  2. <ogloszenie nr="1">
  3. <marka>xxxx</marka>
  4. <model>xxx</model>
  5. <typ>xxx</typ>
  6. <zdjecia>
  7. <zdjecie>images/1_1.jpg</zdjecie>
  8. <zdjecie>images/1_2.jpg</zdjecie>
  9. <zdjecie>images/1_3.jpg</zdjecie>
  10. <zdjecie>images/1_4.jpg</zdjecie>
  11. </zdjecia>
  12. <cena>2000</cena>
  13. <wojewodztwo>Zachodniopomorskie</wojewodztwo>
  14. <rocznik>1234</rocznik>
  15. <silnik>xxxx</silnik>
  16. <opis>xxxxxx</opis>
  17. <sprzedajacy id="1"/>
  18. </ogloszenie>
  19.  
  20. ...
  21. </ogloszenia>


Próbuję wykonać usuwanie znacznika ogloszenie o konkretnym nr i wszystkich znaczników w nim zawartych.

Dla przykładu chcąc usunąć ogłoszenie o numerze 1 usuniemy z dokumentu:
  1. <ogloszenie nr="1">
  2. <marka>xxxx</marka>
  3. <model>xxx</model>
  4. <typ>xxx</typ>
  5. <zdjecia>
  6. <zdjecie>images/1_1.jpg</zdjecie>
  7. <zdjecie>images/1_2.jpg</zdjecie>
  8. <zdjecie>images/1_3.jpg</zdjecie>
  9. <zdjecie>images/1_4.jpg</zdjecie>
  10. </zdjecia>
  11. <cena>2000</cena>
  12. <wojewodztwo>Zachodniopomorskie</wojewodztwo>
  13. <rocznik>1234</rocznik>
  14. <silnik>xxxx</silnik>
  15. <opis>xxxxxx</opis>
  16. <sprzedajacy id="1"/>
  17. </ogloszenie>


Wykonałem na razie skrypt lecz nie wiem czemu nie działa.

  1. $doc = new DOMDocument;
  2. $doc->load('baza/ogloszenia.xml');
  3.  
  4. $id = 1;
  5.  
  6. $xpath = new DOMXpath($doc);
  7.  
  8. foreach($xpath->query('//ogloszenia/ogloszenie[@nr="1"]') as $node) {
  9. $node->parentNode->removeChild($node);
  10. }
  11. echo $doc->savexml();


Proszę o pomoc.


--------------------
HTML/CSS/JS: jsfiddle
SQL: sqlfiddle
Go to the top of the page
+Quote Post
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Trzeba czytać opis funkcji, których się używa:
Cytat
DOMDocument::saveXML — Dumps the internal XML tree back into a string

Co jak dla mnie oznacza, że o zapis do pliku musisz sam zadbać, bo to ma zwrócić tylko stringa.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
pitu
post
Post #3





Grupa: Zarejestrowani
Postów: 476
Pomógł: 96
Dołączył: 10.04.2008
Skąd: Koszalin

Ostrzeżenie: (0%)
-----


Dzięki, mój błąd.

DOMDocument->save()

Do zamknięcia.


--------------------
HTML/CSS/JS: jsfiddle
SQL: sqlfiddle
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 16:35