Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> SimpleXML - Edycja pliku
LeNy
post 18.03.2012, 20:54:27
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 4
Dołączył: 17.01.2009

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


Witam. Posiadam bazę xml, w której mam dane, lecz nie wiem jak mogę je edytować z poziomu PHP. Czytałem różne tematy, lecz nie znalazłem interesującej mnie odpowiedzi.

Moja baza wygląda tak:
  1. <bazadanych>
  2. <host>moj_host.com</host>
  3. <user>ktos</user>
  4. <dbname>nazwa_bazy</dbname>
  5. <password>pass</password>
  6. </bazadanych>


Chcę np zmienić wartość <password></password> na inną, lecz nie wiem jak.
Proszę o pomoc wstydnis.gif
Go to the top of the page
+Quote Post
cudny
post 19.03.2012, 10:02:04
Post #2





Grupa: Zarejestrowani
Postów: 387
Pomógł: 66
Dołączył: 31.03.2005
Skąd: Kielce

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


  1. $xml = simplexml_load_file('bazadanych.xml');
  2. echo '<pre>';
  3. print_r($xml);
  4. echo '</pre>';


http://www.php.net/manual/pl/book.simplexml.php
http://www.w3schools.com/xpath/

Leny - nie jesteś może z Kielc wink.gif ?

Ten post edytował cudny 19.03.2012, 10:03:03


--------------------
..::: Jak pomogłem to kliknij pomógł. Tak rzadko używacie tej opcji :( :::..
Go to the top of the page
+Quote Post
LeNy
post 19.03.2012, 14:36:17
Post #3





Grupa: Zarejestrowani
Postów: 102
Pomógł: 4
Dołączył: 17.01.2009

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


Nie, nie jestem z Kielc worriedsmiley.gif

Co do tematu, to funkcje simplexml_load_file znam dobrze, lecz chciałbym edytować dane a nie je pobierać dry.gif
Go to the top of the page
+Quote Post
cudny
post 19.03.2012, 14:39:59
Post #4





Grupa: Zarejestrowani
Postów: 387
Pomógł: 66
Dołączył: 31.03.2005
Skąd: Kielce

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


funkcja asXML('sciezka_do_pliku.xml');

A xpath możesz użyć do wyszukania interesującej cię danej.
Ogólnie jak załadujesz xml do zmiennej to zmień jej wartość, a potem daj asXML();


--------------------
..::: Jak pomogłem to kliknij pomógł. Tak rzadko używacie tej opcji :( :::..
Go to the top of the page
+Quote Post
LeNy
post 19.03.2012, 16:20:45
Post #5





Grupa: Zarejestrowani
Postów: 102
Pomógł: 4
Dołączył: 17.01.2009

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


Chodzi o coś takiego? wstydnis.gif
  1. $xml = simplexml_load_file('test.xml');
  2. $xml->host = "jakas_nazwa.com";
  3. $xml->host->asXML();
Go to the top of the page
+Quote Post
cudny
post 19.03.2012, 16:31:11
Post #6





Grupa: Zarejestrowani
Postów: 387
Pomógł: 66
Dołączył: 31.03.2005
Skąd: Kielce

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


Nie.
Musisz mieć prawa zapisu dla pliku xml.
$xml->saXML('plik.xml'); to funkcja, która zapisuje do pliku zawartość objektów $xml;

Ogólnie:
ładujesz xml do $xml
  1. $xml = simplexml_load_file('test.xml');

zmieniasz tam to co cię interesuje
  1. $xml[0]->costam->attributes()->value = 'jakaś wartość';

i teraz zrób sobie coś takiego:
  1. $xml->asXML('test.xml');


Tam gdzie masz index.php utworzył ci się plik test.xml
jakbyś dał nazwe i ścieżkę pliku wewnątrz asXML(); to nadpisało by ci satry plik. Ot cała filozofia wink.gif

Ten post edytował cudny 19.03.2012, 16:31:44


--------------------
..::: Jak pomogłem to kliknij pomógł. Tak rzadko używacie tej opcji :( :::..
Go to the top of the page
+Quote Post
LeNy
post 21.03.2012, 21:26:53
Post #7





Grupa: Zarejestrowani
Postów: 102
Pomógł: 4
Dołączył: 17.01.2009

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


Sorki, że po takim długim czasie odpisuje, ale wcześniej nie miałem jak nawet przetestować czy to co napisałeś zadziała. Niestety nie zapisują się zmiany. Ustawiłem chmody na 777 a kod wygląda tak:
  1. $xml = simplexml_load_file('../plik.xml');
  2. $xml[0]->news_file->attributes()->value = $_POST['news'];
  3. $xml->asXML('../plik.xml');


Proszę o pomoc smile.gif

//EDIT:
Poradziłem sobie, użyłem funkcji:
  1. file_put_contents($file, $xml->asXML());


Dzięki, cudny za pomoc specool.gif

Ten post edytował LeNy 21.03.2012, 23:15:07
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 Wersja Lo-Fi Aktualny czas: 28.04.2024 - 16:05