Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [xml] edycja i zapis
morrison
post 6.03.2006, 13:00:10
Post #1





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 24.05.2004
Skąd: krakow

Ostrzeżenie: (10%)
X----


witam,

tworzę edytor plików m.in XML. W tym momencie edycja tych plików wygląda tak, że wyświetlana jest zawartość całego pliku razem ze znacznikami: <znacznik>, a chcę zrobić to tak aby wyświetlały się same dane pomiędzy znacznikami bez tych znaczników. I jak potem to wykonać by ewentualnie wyedytowane dane móc zmodyfikować i żeby zostały zapisane w odpowiednie miejsce w pliku??

bede wdzieczny za pomoc


--------------------
Go to the top of the page
+Quote Post
Apo
post 6.03.2006, 19:54:20
Post #2





Grupa: Zarejestrowani
Postów: 426
Pomógł: 1
Dołączył: 2.10.2005

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


to ci powinno pomóc:
simplexml_load_string
simplexml_load_file
Go to the top of the page
+Quote Post
TomASS
post 6.03.2006, 22:32:04
Post #3





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Musisz przeglądarkę poinformować o tym, że jest to właśnie plik XML, np (na samym początku pliku php):
  1. header("Content-type: text/xml; charset=UTF-8"); 
  2. echo '<?xml version="1.0" encoding="UTF-8"?>';


Oprócz tego kod ten powinien być poprawnym kodem XML.

Ten post edytował TomASS 6.03.2006, 22:32:59


--------------------
Go to the top of the page
+Quote Post
morrison
post 7.03.2006, 16:29:20
Post #4





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 24.05.2004
Skąd: krakow

Ostrzeżenie: (10%)
X----


hm...
Apo - te funkcje nie bardzo mogą mi pomóc gdyż korzystam z przestrzeni nazw i nie udało mi się jak dotąd ich użyć
TomASS - zle mnie zrozumiales - ja nie mam problemu z wyswietlaniem kodu w przegladarce.

chodzi mi o pomoc w skonstruowaniu skryptu w php, ktory bedzie edytowal w osobnych polach formularza dane zawarte w pliku XML - bez znacznikow xml'a. I aby byla mozliwosc modyfikacji tych danych i zapisania ich w odpowiednim miejscu w pliku XML z powrotem - nie bardzo wiem jak to napisac.

oto plik przykladowy XML:

  1. <?xml version="1.0" encoding="ISO-8859-2"?>
  2. <entries xmlns:bibtex="http://bibtexml.sourceforge.net">
  3. <bibtex:entry bibtex:id="7/2004">
  4. <bibtex:unpublished>
  5. <bibtex:author>23</bibtex:author>
  6. <bibtex:title>432</bibtex:title>
  7. <bibtex:note>234</bibtex:note>
  8. <bibtex:month>234</bibtex:month>
  9. <bibtex:year>2434</bibtex:year>
  10. </bibtex:unpublished>
  11. </bibtex:entry>
  12. <bibtex:entry bibtex:id="20/2004">
  13. <bibtex:mastersthesis>
  14. <bibtex:author>44</bibtex:author>
  15. <bibtex:title>44</bibtex:title>
  16. <bibtex:school>44</bibtex:school>
  17. </bibtex:mastersthesis>
  18. </bibtex:entry>
  19. <bibtex:entry bibtex:id="21/2004">
  20. <bibtex:inproceedings>
  21. <bibtex:author>df</bibtex:author>
  22. <bibtex:title>df</bibtex:title>
  23. <bibtex:editor>df</bibtex:editor>
  24. </bibtex:inproceedings>
  25. </bibtex:entry>
  26. </entries>


--------------------
Go to the top of the page
+Quote Post
splatch
post 9.03.2006, 10:38:50
Post #5





Grupa: Zarejestrowani
Postów: 487
Pomógł: 7
Dołączył: 7.01.2004
Skąd: Warszawa

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


Myślę, że tutaj w sam raz będzie DOM Document ze swoimi "magicznymi" metodami - replaceChild, removeChild, appendChild. Do tego, możesz użyć getElementsByTagName, getElementsByTagNameNS, createElementNS..
Więcej - http://pl.php.net/DOM


--------------------
Łukasz Dywicki
Independent Java and open source software consultant.
Blog - Java, OSGi, integracja oprogramowania..
Go to the top of the page
+Quote Post
yavaho
post 9.03.2006, 11:27:13
Post #6





Grupa: Zarejestrowani
Postów: 449
Pomógł: 0
Dołączył: 26.05.2004
Skąd: Nowy Sącz

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


A wiec potrzebujesz parser plikow XML
Zobacz w manualu na te przyklady xml_parse
  1. <?php
  2. $url = 'plik.xml';
  3. $fp = @fopen($url,"r");
  4. if($fp===false) {
  5.  echo('Error reading or opening XML file');
  6. }else{
  7.  
  8.  $data = '';
  9.  while (!feof($fp)) {
  10. $data .= fread($fp, 8192);
  11.  }
  12.  fclose($fp);
  13.  
  14.  $engine = xml_parser_create ('');
  15.  xml_parse_into_struct($engine,$data,$dat,$index);
  16.  xml_parser_free($engine);
  17.  
  18.  echo '<hr />index array<br />';
  19.  print_r($index);
  20.  echo '<hr />\dat array<br />';
  21.  print_r($dat);
  22. }
  23. ?>
Teraz wystarczy edytowac interesujace cie rekordy


--------------------
Książki informatyczneKsiążki biznesowe
Warsztat: notepad hardcore
Go to the top of the page
+Quote Post
wrzasq
post 14.03.2006, 22:18:25
Post #7





Grupa: Zarejestrowani
Postów: 206
Pomógł: 18
Dołączył: 6.03.2006
Skąd: Szczecin

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


rozwijajac pomysl yavaho w oparciu o http://pl.php.net/manual/en/ref.xml.php mozesz napisac bardziej zlozony parser (latwo jest go zamknac w obiektach) szukajacy dokladnie tego, czego chcesz - xml_set_character_data_handler().


--------------------
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: 25.04.2024 - 10:55