[PHP][SimpleXML] Ik kan tags als Media:items niet uitlezen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • BlackWhizz
  • Registratie: September 2004
  • Laatst online: 08-12-2024
Goed, weer zon post van iemand die dr weinig meer van snapt.

SimpleXML heb ik vrij weinig gedaan en is voor mijn gevoel niet diepgaand genoeg gedocumenteerd. Daardoor loop ik een beetje vast. Ik wil namelijk een Picasa RSS feed inbouwen in een website (ivm weinig opslag website).

Een Picasa Feed bevat om het overzicht qua albums te krijgen voor ieder album een onderstaande hoeveelheid RSS/XML:
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<entry gd:etag='&quot;Wip7ImA_&quot;'>
        <id>http://picasaweb.google.com/data/entry/user/Eigenaar/albumid/5538043887033555841</id>
        <published>2010-11-06T19:14:25.000Z</published>
        <updated>2010-11-10T22:02:36.485Z</updated>
        <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/photos/2007#album'/>
        <title>Schalmjojo's Film 2010</title>
        <summary/>
        <rights>public</rights>
        <link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://picasaweb.google.com/data/feed/api/user/Eigenaar/albumid/5538043887033555841?v=2'/>
        <link rel='alternate' type='text/html' href='http://picasaweb.google.com/janssen.timo/SchalmjojoSFilm2010'/>
        <link rel='self' type='application/atom+xml' href='http://picasaweb.google.com/data/entry/api/user/Eigenaar/albumid/5538043887033555841?v=2'/>
        <author>
            <name>Eigenaar</name>
            <uri>http://picasaweb.google.com/Eigenaar</uri>
        </author>
        <gphoto:id>5538043887033555841</gphoto:id>
        <gphoto:location/>
        <gphoto:access>public</gphoto:access>
        <gphoto:timestamp>1289070865000</gphoto:timestamp>
        <gphoto:numphotos>10</gphoto:numphotos>
        <gphoto:user>Eigenaar</gphoto:user>
        <gphoto:nickname>Eigenaar</gphoto:nickname>
        <media:group>
            <media:content url='http://lh5.ggpht.com/_p2IANlxNnwE/TNsVks0om4E/AAAAAAAACbo/C1jDbxq-vDU/SchalmjojoSFilm2010.jpg' type='image/jpeg' medium='image'/>
            <media:credit>Eigenaar</media:credit>
            <media:description type='plain'/>
            <media:keywords/>
            <media:thumbnail url='http://lh5.ggpht.com/_p2IANlxNnwE/TNsVks0om4E/AAAAAAAACbo/C1jDbxq-vDU/s160-c/SchalmjojoSFilm2010.jpg' height='160' width='160'/>
            <media:title type='plain'>Schalmjojo's Film 2010</media:title>
        </media:group>
    </entry>


Nu kan ik met mijn simpleXML skillz alleen de volgende tags inlezen.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
SimpleXMLElement Object
(
    [id] => http://picasaweb.google.com/data/entry/api/user/Eigenaar/albumid/5538043887033555841
    [published] => 2010-11-06T19:14:25.000Z
    [updated] => 2010-11-10T22:02:36.485Z
    [category] => SimpleXMLElement Object
        (
            [@attributes] => Array
                (
                    [scheme] => http://schemas.google.com/g/2005#kind
                    [term] => http://schemas.google.com/photos/2007#album
                )
 
        )
 
    [title] => Schalmjojo's Film 2010
    [summary] => SimpleXMLElement Object
        (
            [@attributes] => Array
                (
                    [type] => text
                )
 
        )
 
    [rights] => public
    [link] => Array
        (
            [0] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [rel] => http://schemas.google.com/g/2005#feed
                            [type] => application/atom+xml
                            [href] => http://picasaweb.google.com/data/feed/api/user/Eigenaar/albumid/5538043887033555841
                        )
 
                )
 
            [1] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [rel] => alternate
                            [type] => text/html
                            [href] => http://picasaweb.google.com/Eigenaar/SchalmjojoSFilm2010
                        )
 
                )
 
            [2] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [rel] => self
                            [type] => application/atom+xml
                            [href] => http://picasaweb.google.com/data/entry/api/user/Eigenaar/albumid/5538043887033555841
                        )
 
                )
 
        )
 
    [author] => SimpleXMLElement Object
        (
            [name] => Eigenaar
            [uri] => http://picasaweb.google.com/Eigenaar
        )
 
)


Hoe kan ik die Gphoto en Media tags inlezen? Deze bevatten url's naar thumbnails, wat het vinden van een album een stuk plezieriger maakt.

Acties:
  • 0 Henk 'm!

  • Wiethoofd
  • Registratie: Juli 2007
  • Laatst online: 14-08 12:22

Wiethoofd

Broadcast TOM

http://www.phpfreaks.com/...plexml-and-picasaweb-xml/
Je schijnt met xpath de media en gphoto paden te kunnen benaderen. 5 minuten [google=picasa simplexml]

Volg me op Twitter/X & Bluesky


Acties:
  • 0 Henk 'm!

Verwijderd

Wat mij opvalt is dat de xml ook niet valide is.
Er is geen namespace gedefineerd voor gphoto en media.

Linkje t.b.v. XPath http://www.w3schools.com/XPath/default.asp

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Verwijderd schreef op vrijdag 14 januari 2011 @ 09:25:
Wat mij opvalt is dat de xml ook niet valide is.
Er is geen namespace gedefineerd voor gphoto en media.
voor ieder album een onderstaande hoeveelheid RSS/XML
Het is dus niet de gehele XML ;)

Maar goed, met namespaces kom je op het punt dat SimpleXML niet meer simple is. De namespace gerelateerde methods zijn een beetje trial & error, en uiteindelijk eindig je altijd met de xpath() method. :P

{signature}


Acties:
  • 0 Henk 'm!

  • BlackWhizz
  • Registratie: September 2004
  • Laatst online: 08-12-2024
Dus die dingen heten namespaces en php eet ze door xpath te gebruiken. Helden! :) Nu kan ik gelukkig weer verder.

Acties:
  • 0 Henk 'm!

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 01:51

alienfruit

the alien you never expected

Volgens mij kan je ook $xml->children( $namespaceURL ); gebruiken. Maar of je daar nou zo vrolijk van wordt...

Acties:
  • 0 Henk 'm!

  • storeman
  • Registratie: April 2004
  • Laatst online: 12-09 11:48
Waarom gebruik je geen DOMDocument? Is een stuk krachtiger, maar mist misschien het 'Simple' idee :).

"Chaos kan niet uit de hand lopen"

Pagina: 1