Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> generowanie XML, DOM, problem
magrytos
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 24.03.2009

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


Witam. Mam do zrobienia nastepujace zadanie. z duzego pliku XML wyciagnac najbardziej interesujace nas dane i nastepnie zapisac je w nowym xml-u. Z wyciagnieciem danych sobie poradzilem.
I tu pojawia sie problem:
nie mam pojecia jak wygenerowac nowego xml-a :/ szukam najprostrzej funkcji ktora generowalaby jakikolwiek plik .xml. jedyne co znalazlem to cos zykorzystujace funkcje new_xmldoc(). wiem, ze jest to funkcja z DOMXML, niestety gdy ja u siebie wywoluje, otrzymuje blad krytyczny.
moja prosba:
moglby mi ktos napisac co zrobic, zeby php znal ta funkcje lub
moglby ktos moze podeslac jakakolwiek prosta fukncje generujaca xml nie uzywajaca DOMXML.

Dzieki wielkie
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
batman
post
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




XMLWriter
Go to the top of the page
+Quote Post
magrytos
post
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 24.03.2009

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


niestety XMLWriter-a tez mi nie widzi.
mozesz mi napisac co i gdzie trzeba pozmieniac?
Go to the top of the page
+Quote Post
batman
post
Post #4





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




XMLWriter to najprostszy z możliwych sposobów służący do generowania plików XML. Nie znam prostszego sposobu.
Go to the top of the page
+Quote Post
magrytos
post
Post #5





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 24.03.2009

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


ok. z tym, ze gdy chce uzyc ktorejsc z funkcji XLMWritera, tez wywala mi blad: Fatal error: Call to undefined function. co zrobic, by php zaczal widziec jego funkcje?
Go to the top of the page
+Quote Post
batman
post
Post #6





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat
By używać tych funkcji, nie trzeba niczego instalować. Są one częścią jądra PHP.

Innymi słowy używasz PHP 4. XMLWriter nie będzie działać w tej wersji PHP. Pozostają Ci zwykłe operacje na plikach, czyli fwrite.
Go to the top of the page
+Quote Post
magrytos
post
Post #7





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 24.03.2009

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


wersje sprawdzalem, mam php 5.2.6
czytalem na jakims angielskim forum, ze koles pozmienial cos w pliku php.ini (a propos DOM-a), ale nie napisal co . mozlie to?
Go to the top of the page
+Quote Post
batman
post
Post #8





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Możliwe. Sprawdź w phpinfo() jakie masz moduły uruchomione i będziesz wiedział, czego Ci brakuje, by używać DOM. Ale z tym XMLWriter, to dziwna sprawa. Podaj kod, który Ci nie działa. Może jakaś literówka się wkradła.
Go to the top of the page
+Quote Post
magrytos
post
Post #9





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 24.03.2009

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


poniewaz jestem mocno poczatkujacy, chyba popelnilem blad i chyba jednak xmlwriter dziala. chcac to sprawdzic wywolywalem sobie stamtad jakakolwiek funkcje, np
startAttribute(...);
natomiast gdy zrobilem

xmlwriter_start_attribute (...); wyrzucilo mi warninga odnosnie zmiennych, wiec chyba xmlwriter dziala.

natomiast jesli chodzi o DOMa, w phpinfo() mam cos takiego:




dom
DOM/XML enabled DOM/XML API Version 20031129 libxml Version 2.6.32 HTML Support enabled XPath Support enabled XPointer Support enabled Schema Support enabled RelaxNG Support enabled


wszystko niby jest, a jednak nie dziala. ale ja jako poczatkujacy kojarze tylko enabled... wiesz moze, patrzac na to, co trzebaby zrobic?

dzieki
Go to the top of the page
+Quote Post
batman
post
Post #10





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




To jest działający przykład generujący plik xml dla google. Przeanalizuj go, uruchom, jak czegoś nie rozumiesz, to sprawdź w manualu. Prościej już nie można wyjaśnić.

  1. <?php
  2. $writer = new XmlWriter();
  3. $writer->openUri('/sciezka/do/pliku.xml');
  4. $writer->setIndent(true);
  5. $writer->setIndentString("\t");
  6.  
  7. $writer->startDocument('1.0','UTF-8');
  8. $writer->startElement('urlset');
  9. $writer->writeAttribute('xmlns', 'http://www.google.com/schemas/sitemap/0.84');
  10.  
  11. $writer->startElement('url');
  12. $writer->writeElement('loc', 'http://jakis.adres.www.pl/strona.html');
  13. $writer->writeElement('lastmod', '2009-03-23');
  14. $writer->writeElement('changefreq', 'daily');
  15. $writer->endElement();
  16.  
  17. $writer->startElement('url');
  18. $writer->writeElement('loc', 'http://jakis.adres.www.pl/inna-strona.html');
  19. $writer->writeElement('lastmod', '2009-03-22');
  20. $writer->writeElement('changefreq', 'daily');
  21. $writer->endElement();
  22.  
  23. $writer->endElement();
  24. $writer->endDocument();
  25. ?>
Go to the top of the page
+Quote Post
gryfit.slupsk
post
Post #11





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 4.03.2009
Skąd: Słupsk

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


Powinno chyba chyba być domxml_new_doc('1.0')... ale u mnie np.: i tak nie działało... nie jestem pewny, ale to chyba dotyczy PHP4.
W każdym razie używam:

CODE
$DOM = new DOMDocument('1.0', 'kodowanie')
Go to the top of the page
+Quote Post
a79rtur
post
Post #12





Grupa: Zarejestrowani
Postów: 331
Pomógł: 1
Dołączył: 23.05.2004
Skąd: Tarnów/Londyn

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


jest jeszcze SimpleXML ale ja osobiscie uzywam DOM
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.12.2025 - 05:49