xml parsing

Tags:    php

jeg har et script til parsing af en xml fil, så jeg kan få et output til noget tv guide til min fjernbetjening. Jeg har brugt mc2xml til at grabbe xml-filen, men der mangler en del kanaler og ikke mindst de fleste af programmerne. Derfor vil jeg istedet bruge ontv.dk's xml feed. Jeg kan af en eller anden grund ikke få scriptet til at parse ontv's xml uden at redigere det.
Den xml-fil der virker har denne form:
Fold kodeboks ind/udKode 


den xml-fil jeg ikke kan få til at virke har denne form:

Fold kodeboks ind/udKode 


den umiddelbare forskel er i tagget display-name, hvor lang="dk" er tilføjet.

scriptet ser således ud (jeg ved ereg ikke er med i næste version og simple xml vil være en bedre løsning, men jeg ser ingen grund til at skrive det hele om til dette formål)

Fold kodeboks ind/udKode 


er er naturligvis et par linier der åbentlyst skal laves om; linie 53 og 54 skal være i+1 i stedet for i+3, da der kun er 1 linie med display-name i den anden xml-fil

Linie 52 synes at være et problem for mig - jeg har indsat
Fold kodeboks ind/udKode 

i stedet for den oprindelige, men det virker stadig ikke.
Hvis jeg fjerner lang="dk" fra display-name tagget virker det fint med det oprindelige script. Det er bare en smule bøvlet at rette xml-filen hver gang jeg downloader den.
Der må være et eller andet jeg helt overser, men hvad?



5 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 7 karma
Sorter efter stemmer Sorter efter dato
Jeg er enig i at i et produktionsmiljø er det mere givtigt at bruge en indbygget parser (du kan nøjes med simplexml medmindre du har fat i noget helt vildt. Domdocument er dødens pølse at arbejde med)

Men med det sagt, så er det helt bestemt en rigtig god øvelse at skrive sin egen parser. Man kommer ind under huden på nogle begreber og får et meget bedre billede af hvad sådan en parser egentlig skal have med i sine beregninger. Om ikke andet lærer man at værdsætte de eksisterende libraries bedre efter man har rullet sin egen først :)



Jeg ville nok gøre, som alle andre anbefaler at parse XMLen vha. en af PHPs XML moduler. I et rimelig snuptag vil man nok kunne analysere sig frem til samme funktionalitet som ONTV parseren.

DOMDocument er langt fra dødens pølse, hvis man allerede kender til måden hvordan JavaScript håndterer DOM på. ;)
Ligeledes er DOMXpath et klasse værktøj til at søge efter elementer. Ærgeligt at denne ikke er blevet porteret til Javascript.



Hvorfor i alverden bruger du ikke en af php's 2 indbyggede xml-parsere? :S

http://www.php.net/manual/en/function.simplexml-load-string.php

http://www.php.net/manual/en/domdocument.loadxml.php



Indlæg senest redigeret d. 17.01.2011 08:23 af Bruger #3275
Jeg er enig med Jonas. Manuel parsing er helt forkert og unødvendig. Brug PHP's indbyggede XML parsere, så bliver det både korrekt og lettere at læse din kode.



Domdocument er dødens pølse at arbejde med)

Really ? Det må være en smagssag. Jeg foretrækker DOM helt tosset meget.


Men med det sagt, så er det helt bestemt en rigtig god øvelse at skrive sin egen parser. Man kommer ind under huden på nogle begreber og får et meget bedre billede af hvad sådan en parser egentlig skal have med i sine beregninger. Om ikke andet lærer man at værdsætte de eksisterende libraries bedre efter man har rullet sin egen først :)


Lidt enig her, for det kræver lidt viden om, hvordan parsere faktisk virker, og det ser det ikke ud til at OP ved.



t