login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Atom Reader - Windows Phone (Opgelost)

Offline larssy1 - 14/10/2011 14:40
Avatar van larssy1MySQL beginner Hey mensen,

Ik vroeg mij af of iemand een RSS Reader weet dat Atom format kan uitlezen.
Ik heb het geprobeerd met verschillende atom readers, maar daarbij lukte het toch niet omdat die niet de mogelijkheid ondersteunen dat het niet <entry> is maar <a:entry>.

Ik heb geprobeerd bestaande Atom Readers aan te passen, maar ook daarmee zonder success.

Nu ben ik dan bezig met de volgende:
class.atomreader.php
http://www.plaatscode.be/141329/

feeds.php
http://www.plaatscode.be/141330/

Hierbij is het de bedoeling om $data te strippen van zijn "a:" waardes
en daarnaast display_entry / feeds aanpassen om lege TITLES te negeren.

Ik hoop dat jullie mij hierbij kunnen helpen want ik ben echt vastgelopen hiermee...

Mvg,
lars

18 antwoorden

Gesponsorde links
Offline icemar - 15/10/2011 08:13
Avatar van icemar Lid Waarom gebruik je niet de php functie simplexml_load_file hier mee kan je de rss zo laten zien hoe je zelf wil.

Tevens heb je dan ook de optie om lege titels te negeren.
Bedankt door: larssy1
Offline larssy1 - 16/10/2011 23:42 (laatste wijziging 16/10/2011 23:43)
Avatar van larssy1 MySQL beginner Hmm, ja is veel makkelijker, er word tenminste nu iets weergegeven,, haha..

Het lukt me alleen echter nog niet om de userRating weer te geven. En ik weet niet waarom.. alles begint met een a: en userRating net weer niet..

  1. <?php
  2.  
  3. $myFile = "http://catalog.zune.net/v3.2/en-Us/apps/21729556-a492-e011-986b-78e7d1fa76f8/reviews";
  4.  
  5. $feed = simplexml_load_file($myFile);
  6.  
  7. $xml = $feed->children('http://www.w3.org/2005/Atom');
  8.  
  9. echo "<h1>".$xml->title . "</h1>\n";
  10.  
  11. foreach ($xml->entry as $entries) {
  12. $child = $entries->children('http://www.w3.org/2005/Atom');
  13. if (!empty($child->updated)) echo "<p>" . $child->updated . "</p>\n";
  14. if (!empty($child->author->name)) echo "<p>" . $child->author->name . "</p>\n";
  15. echo "<p><h1>" . $child->userRating. "</h1></p>\n";
  16. if (!empty($child->summary)) echo htmlspecialchars($child->summary) . "<br />\n";
  17. echo $child->content->asXML();
  18. }
  19.  
  20. ?>
Offline icemar - 17/10/2011 07:56 (laatste wijziging 17/10/2011 07:56)
Avatar van icemar Lid Zo te zien wordt deze niet met de
  1. $child

mee gestuurd dan moet je uitvinden waar deze wel in zit
Offline larssy1 - 17/10/2011 09:30
Avatar van larssy1 MySQL beginner
icemar schreef:
Zo te zien wordt deze niet met de [..code..]
mee gestuurd dan moet je uitvinden waar deze wel in zit


zover was ik ook al 
Offline Maarten - 17/10/2011 09:53
Avatar van Maarten Erelid Anders eens een var_dump van $entries doen en hopen dat je die ergens terug vindt? 
Offline larssy1 - 17/10/2011 09:56 (laatste wijziging 17/10/2011 09:58)
Avatar van larssy1 MySQL beginner
Maarten schreef:
Anders eens een var_dump van $entries doen en hopen dat je die ergens terug vindt? 


had ik al geprobeerd.. maar daarmee mee kom je tot dezelfde conclusie.. het zit er niet in, terwijl het wel in de code van de feed staat.

object(SimpleXMLElement)#5 (5) { ["updated"]=> string(24) "2011-10-15T07:05:00.343Z" ["title"]=> object(SimpleXMLElement)#6 (0) { } ["id"]=> string(82) "tag:catalog.zune.net,2011-10-17:/apps/21729556-a492-e011-986b-78e7d1fa76f8/reviews" ["content"]=> object(SimpleXMLElement)#7 (0) { } ["author"]=> object(SimpleXMLElement)#8 (1) { ["name"]=> string(12) "username" } }

bij het gebruik van var_dump op de xml zelf, komt er ook geen userrating naar boven btw.
Offline icemar - 17/10/2011 10:05
Avatar van icemar Lid Dus kan je deze ook niet gebruiken lijkt mij dan
Offline larssy1 - 17/10/2011 10:05
Avatar van larssy1 MySQL beginner Raar dat microsoft hem dan toch meegeeft in de source van de feeds.
Offline icemar - 17/10/2011 10:23
Avatar van icemar Lid Als je zo de feed aanroept staat er ook geen userRating bij heb je een voorbeeld van de feed waar je deze wel in ziet ?
Offline larssy1 - 17/10/2011 10:45 (laatste wijziging 17/10/2011 11:30)
Avatar van larssy1 MySQL beginner http://catalog....f8/reviews

De source code van zune is een enorme warboel, het gemakkelijks is gewoon zoeken op userRating
----
Bij deze is het t zelfde verhaal, je kunt alleen bij de objecten komen die met een a: beginnen.
http://catalog....e7d1fa76f8
Offline icemar - 17/10/2011 13:01
Avatar van icemar Lid De userrating staat wel in de bron maar wordt ook niet getoond bij de feed op de site.
Dus ze zullen dat niet hebben toegevoegd aan hun feed om te tonen.
Hier kan je niets aan doen.
Offline larssy1 - 17/10/2011 13:21
Avatar van larssy1 MySQL beginner Hmm, dan ben ik toch echt benieuwd welke feeds websites als wp7applist.com etc gebruiken.
of programma's zoals Ztop
Offline icemar - 17/10/2011 14:20
Avatar van icemar Lid Ze maken hun eigen feed doormiddel van data uit een database te halen.
De feed die ze ter beschikking stellen is beperkt zo te zien.
Offline larssy1 - 17/10/2011 14:23 (laatste wijziging 17/10/2011 14:32)
Avatar van larssy1 MySQL beginner Awh ok, dan zou ik in dit geval even contact moeten opnemen met de App Hub Support, toch bedankt voor jullie hulp.
----
Ik zal dit topic voor vandaag nog open laten, misschien dat iemand met een nog werkend idee komt.

Morgen zal ik 'm op opgelost zetten.
Offline Maarten - 17/10/2011 15:05 (laatste wijziging 17/10/2011 15:06)
Avatar van Maarten Erelid Mjah, hij staat er toch in, dus moet je hem toch kunnen uitlezen? Ik ben een .NET mens, maar ik kan mij moeilijk voorstellen dat het niet lukt in PHP.

Nu doe je iets à la $bla->Children("namespace"). Als je nu als 2de variabele GEEN namespace aanroept, dan moet je toch die userrating meekrijgen?

edit:
  1. <?php
  2.  
  3. $myFile = "http://catalog.zune.net/v3.2/en-Us/apps/21729556-a492-e011-986b-78e7d1fa76f8/reviews";
  4.  
  5. $feed = simplexml_load_file($myFile);
  6.  
  7. $xml = $feed->children('http://www.w3.org/2005/Atom');
  8.  
  9. echo "<h1>".$xml->title . "</h1>\n";
  10.  
  11. foreach ($xml->entry as $entries) {
  12. $child = $entries->children('http://www.w3.org/2005/Atom');
  13. $child2 = $entries->children();
  14. // Volgens mij zal child2 de userrating bevatten?
  15.  
  16. if (!empty($child->updated)) echo "<p>" . $child->updated . "</p>\n";
  17. if (!empty($child->author->name)) echo "<p>" . $child->author->name . "</p>\n";
  18. echo "<p><h1>" . $child->userRating. "</h1></p>\n";
  19. if (!empty($child->summary)) echo htmlspecialchars($child->summary) . "<br />\n";
  20. echo $child->content->asXML();
  21. }
  22.  
  23. ?>
Bedankt door: larssy1
Offline larssy1 - 17/10/2011 15:07 (laatste wijziging 17/10/2011 15:13)
Avatar van larssy1 MySQL beginner dat dacht ik dus ook.

maar hij valt niet aan te roepen via de xml en ook niet via de a:entry
----------
Ah hey, die werkt.
Ook al snap ik niet waarom..

in de $xml op regel define je al een children, dus deze zou eigenlijk al mee moeten worden genomen naar $entries.

daarnaast op regel 18: $child2 en niet $child 
----------
Als hierop nog even uitleg kan worden gegeven, zou ik t op 'oplossing' zetten 
Offline Maarten - 17/10/2011 15:49
Avatar van Maarten Erelid Eigenlijk is het nog redelijk logisch.. je namespace beperkt zich effectief tot die namespace, de userrating zit in een andere namespace. Eigenlijk zou je op een of andere manier moeten een 'merge' doen van die namespaces, maar zoals ik zei, PHP ben ik al een hele tijd verleerd.
Offline larssy1 - 17/10/2011 15:53
Avatar van larssy1 MySQL beginner Ah ok, nja bedankt voor het helpen met het oplossen van mijn probleem.

bij deze staat hij op 'opgelost'.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.229s