Avatar billede weeelo Nybegynder
22. maj 2011 - 22:10 Der er 8 kommentarer og
1 løsning

SimpleXMLElement - xpath?

Hej eksperter,

Jeg har et problem med xpath på et SimpleXMLElement. Jeg har en node, der ser ud som følger:

<item rdf:about="http://side.dk">
<title>Title</title>
<link>http://side.dk</link>
<description>Description</description>
<dc:creator/>
<dc:date>2011-05-22T19:52:47Z</dc:date>
</item>

Ved brug af $item->link får jeg printet http://side.dk, men når jeg prøver med $item->xpath('link') så får jeg et tomt array tilbage. Hvad er det helt præcist der går galt her?

Jeg skal bruge xpath, da jeg dynamisk skal kunne hente forskellige ting ud.

Mvh Søren
Avatar billede repox Seniormester
22. maj 2011 - 22:18 #1
Hvis du bare vil hente alle elementer ud der hedder 'link', skal du skrive $item->xpath('//link')
Avatar billede weeelo Nybegynder
22. maj 2011 - 22:28 #2
Det returnerer ligeledes et tomt array.
Avatar billede repox Seniormester
22. maj 2011 - 22:41 #3
Nu har jeg selv opfundet de namespaces der skulle bruges, men ellers virker det fint for mig:
http://err0r.dk/test/links.php

Se kildekoden her:
http://err0r.dk/test/links.php?s
Avatar billede weeelo Nybegynder
22. maj 2011 - 22:48 #4
Det er Jyllandspostens RSS feed jeg har problemer med: http://jp.dk/rss/topnyheder.jsp
Avatar billede weeelo Nybegynder
22. maj 2011 - 23:26 #5
Ok, jeg fandt en løsning her: http://www.php.net/manual/en/simplexmlelement.xpath.php#96153

$xml = str_replace('xmlns=', 'ns=', $xml);

Den klarer det!
Avatar billede repox Seniormester
23. maj 2011 - 09:47 #6
#5
Tja, den løser det, men det er vist ikke helt korrekt. Jeg er da selv nysgerrig nok til at gå videre med det... :)
Avatar billede weeelo Nybegynder
23. maj 2011 - 12:03 #7
Jeg kan klare mig med et mindre hack indtil videre, men ser frem til at se hvad du finder ud af.

Mvh Søren
Avatar billede weeelo Nybegynder
20. august 2011 - 06:19 #8
Ingen løsning?
Avatar billede weeelo Nybegynder
04. september 2011 - 09:43 #9
Lukker...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester