Maja Miarecki

Maja Miarecki Senior Frontend
Developer

Temat: wyciaganie danych z xml

Witajcie,

Mam taki xml:

<item rdf:about="http://jakis-link.pl">
<title>tytul</title>
<link>http://www.inny-link.pl</link>
<description>opis</description>
<dc:creator>creator</dc:creator>
<dc:subject>subject</dc:subject>
<dc:date>2009-11-19T22:46:02Z</dc:date>
</item>

I nie wiem, jak wyciagnac dane z <dc:date>. Bede wdzieczna za pomoc
Maciej W.

Maciej W. Ruby on what?!

Temat: wyciaganie danych z xml

Chyba najprosciej
$xml = new SimpleXMLElement($xmlstr);
$namespaces = $xml->getNameSpaces(true);
$dc = $xml->children($namespaces['dc']);
echo $dc->date;


Sypnie warningi ale zadziala. Jesli przed kodem dasz
libxml_use_internal_errors(true)

to potem mozesz sobie warningi sama obsluzyc samemu http://www.php.net/manual/en/function.libxml-use-inter...

konto usunięte

Temat: wyciaganie danych z xml

I nie wiem, jak wyciagnac dane z <dc:date>. Bede wdzieczna za pomoc

Dokument uzywa dwoch roznych przestrzeni nazw, wiec od tego bym zaczal.
Jak sformatowac date jest opisane tu:
http://geekswithblogs.net/workdog/archive/2007/02/08/1...
Maja Miarecki

Maja Miarecki Senior Frontend
Developer

Temat: wyciaganie danych z xml

Jak sie czlowiek spieszy to i wszystkiego nie napisze :/ Mam juz taki kod:

$xmlDoc = new DOMDocument();
$xmlDoc->load($xml);

$channel=$xmlDoc->getElementsByTagName('channel')->item(0);
$channelTitle = str_replace("'","’",$channel->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue);

I tak dalej :) I tylko mi ta nieszczesna data zostala, ale nie znalazlam opcji, zeby domdocument operowal na namespacach... No niby moge DOMDocument::getElementsByTagNameNS ale akurat kolejnego odwolywania sie do URL wolalabym uniknac...

konto usunięte

Temat: wyciaganie danych z xml

I tak dalej :) I tylko mi ta nieszczesna data zostala, ale nie znalazlam opcji, zeby domdocument operowal na namespacach... No niby moge DOMDocument::getElementsByTagNameNS ale akurat kolejnego odwolywania sie do URL wolalabym uniknac...

A nie moznaby tego dokumentu zrzucic do tymczasowego lokalnego cache i tam z nim pracowac?

Jest jeszcze inna opcja - przetworzenie wejsciowego XML na cos bardziej strawnego dla PHP (tzn. bez "namespace") z pomoca XSLT.
Maja Miarecki

Maja Miarecki Senior Frontend
Developer

Temat: wyciaganie danych z xml

Chyba znalazlam prostsze rozwiazanie :) zaczytam caly dokument za pomoca DOMDocument::getElementsByTagNameNS, zamiast (jak to teraz robie) getElementsByTagName, i wtedy bede miala wszystkie namespace'y dostepne :)

Następna dyskusja:

Poszukuje danych w XML




Wyślij zaproszenie do