magrytos
24.03.2009, 12:14:10
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
24.03.2009, 12:17:14
magrytos
24.03.2009, 13:09:12
niestety XMLWriter-a tez mi nie widzi.
mozesz mi napisac co i gdzie trzeba pozmieniac?
batman
24.03.2009, 13:15:14
XMLWriter to najprostszy z możliwych sposobów służący do generowania plików XML. Nie znam prostszego sposobu.
magrytos
24.03.2009, 13:23:03
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
24.03.2009, 13:38:05
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
24.03.2009, 13:55:46
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
24.03.2009, 14:04:39
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
24.03.2009, 14:41:59
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
25.03.2009, 08:09:36
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ć.
<?php
$writer = new XmlWriter();
$writer->openUri('/sciezka/do/pliku.xml');
$writer->setIndent(true);
$writer->setIndentString("\t");
$writer->startDocument('1.0','UTF-8');
$writer->startElement('urlset');
$writer->writeAttribute('xmlns', 'http://www.google.com/schemas/sitemap/0.84');
$writer->startElement('url');
$writer->writeElement('loc', 'http://jakis.adres.www.pl/strona.html');
$writer->writeElement('lastmod', '2009-03-23');
$writer->writeElement('changefreq', 'daily');
$writer->endElement();
$writer->startElement('url');
$writer->writeElement('loc', 'http://jakis.adres.www.pl/inna-strona.html');
$writer->writeElement('lastmod', '2009-03-22');
$writer->writeElement('changefreq', 'daily');
$writer->endElement();
$writer->endElement();
$writer->endDocument();
?>
gryfit.slupsk
6.06.2009, 08:41:18
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
9.06.2009, 09:30:50
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.