REG.EXP: Hente det mellem <url>..</url>

Tags:    php

<< < 123 > >>
Hej,
Jeg har en XML fil fra filmtrailer, hvor jeg ønsker at hente det mellem <url> og </url>.

Fold kodeboks ind/udKode 


Den SKAL vide, at det er mellem <file ......></file> også, fordi der findes andre <url> i xml-dokumentet, som ses her:

http://dk.feed.playnw.com/v2.0/?ListType=Latest30InCinema&channel_user_id=100001

Håber nogle kan hjælpe



Bla bla bla...

Eller:
Fold kodeboks ind/udKode 





Warning: DOMDocument::loadXML() [domdocument.loadxml]: Empty string supplied as input in /home/xplay/public_html/hehe.php on line 3

Warning: DOMXPath::query() [domxpath.query]: Invalid expression in /home/xplay/public_html/hehe.php on line 6

Warning: DOMXPath::query() [domxpath.query]: Invalid expression in /home/xplay/public_html/hehe.php on line 6



Antag ikke at du får en færdig løsning...
Antag at du får hjælp til selvhjælp...



Hvis jeg med følgende xslt, og xpath løber det igennem:

Fold kodeboks ind/udKode 



Får jeg følgende output:
Fold kodeboks ind/udKode 


Som er genereret på 0.03 sec med følgende C#, som let kan oversættes af en php gut for dig:

Fold kodeboks ind/udKode 



Håber du kan se fordelene i at lave et php lag der servicere xml fra database, det er let at lave noget generisk der kan tømme en tabel for data og genrere xml, der understøtter tabel strukturen fra DB -> Forbedre evt med et cache lag.

Desuden kan dataen let bruges til andet end web, man vil hurtigt kunne lave RSS osv, uden at skulle til at lave så meget mere end at smide et andet xslt ark på. og lade et rss request afvikle det.





Indlæg senest redigeret d. 10.02.2009 23:09 af Bruger #5789
"Lidt som at banke søm i aluminium med en tandbørste.". Haha. Jeg vil nu holde til ikke at bruge regexp da det er som Jokke siger. Hold dig til et eller andet som er lavet til at validerer XML.



"Lidt som at banke søm i aluminium med en tandbørste.". Haha. Jeg vil nu holde til ikke at bruge regexp da det er som Jokke siger. Hold dig til et eller andet som er lavet til at validerer XML.


Hehe, ja okay, den opgave med sømmet var måske umulig, men ja, det er langt lettere at behandle sit data med redskaber der passer. Det kunne godt løses med regex, men ikke særligt smukt.

Martin, eller Michael, kunne en af Jer ikke oversætte det til php ? - bare det korte stykke C#, lad det returnere en streng, så den bare kan plugges ind, og han kan rodde i xslt filen i stedet ? - Jeg bruger ikke noget fra msxml ns, så det burde bare kunne slettes, men jeg ved ikke om php bruger samme motor = msxml 4 ?

/J



Indlæg senest redigeret d. 11.02.2009 09:17 af Bruger #5789
Hej Jesper

Jeg ville nok lave det sådan her istedet:
Fold kodeboks ind/udKode 


Jeg har testet det og det skulle gerne give det resultat du vil have ud.

Men hvad er grunden til at du har lavet det som en classe?





Wow - tusind tak! Den løsning var da godt nok MEGET nemmere.

Kan du få den til at hente "picture->picture->poster" også? Altså plakaten? Jeg har selv forsøgt med
Fold kodeboks ind/udKode 
- dog uden held.

Det kunne også være super dejligt, hvis du kunne udtrække:

<premiere unix_stamp="1233874800">2009-02-06</premiere>

unix_stamp tallene i " og ".

"description" = <description>..</description>

<producers>..</producers> og den sidste:
<writers>..</writers>

Så ville det være alletiders. Og tak på forhånd.:D

Det får ens humør op, når man sidder med lungebetændelse ;-)



Har selv fikset det :-) Mangler dog lige sådan en:

<premiere unix_stamp="1233874800">2009-02-06</premiere>

Kan nogle hjælpe med at hente "1233874800" ud?



i xpath premierer/@unix_stamp

Så sikker noget

premierer->@unix_stamp i det der php xpath fedt halløj

Desuden fatter jeg ikke helt hvorfor du er så begejstreret for løsningen når den allerede er foreslået til at starte med, eller skal det hele bare præsenteres ? - desuden er jeg overbevist om at php må kunne håndtere xml endnu bedre end det der simple php. Med normalt xslt arbejde, og ikke phps indbyggede.


/J



Indlæg senest redigeret d. 13.02.2009 07:28 af Bruger #5789
<< < 123 > >>
t