Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: generowanie XML, DOM, problem
Forum PHP.pl > Forum > XML, AJAX
magrytos
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
batman
XMLWriter
magrytos
niestety XMLWriter-a tez mi nie widzi.
mozesz mi napisac co i gdzie trzeba pozmieniac?
batman
XMLWriter to najprostszy z możliwych sposobów służący do generowania plików XML. Nie znam prostszego sposobu.
magrytos
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?
batman
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.
magrytos
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?
batman
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.
magrytos
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
batman
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. ?>
gryfit.slupsk
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')
a79rtur
jest jeszcze SimpleXML ale ja osobiscie uzywam DOM
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.