Ma megszivatott a cimben szereplő hármas. Egy pár szimpla XPath lekérdezést akartam irni a BNR valutaárfolyam XML feedjére. Eléggé kezdő vagyok XML feldolgozásban, eddig nem nagyon használtam ilyesmit.

Olvasgattam az XPath tutorialt, a php SimpleXML dokját, s egyszerűnek tűnt az egész. Addig, amig leirtam az első lekérdezést.

Ilyesmit irtam:

$xml->xpath(”/DataSet/Body/OrigCurrency”);

Nem ment. Próbáltam direkt //OrigCurrency lekérdezést, az sem ment. Minden marhaságot végigpróbáltam, ami eszembe jutott, de eredmény nélkül.

Elkezdtem olvasgatni a php doksiban a commenteket, ahol megtaláltam a “hiba” okát. Nem kezeli rendesen az XPath implementáció a default namespacet. A BNR feedjében pedig van ilyen.

Fasz kivan, megnéztem pár minta kódot, s próbálgattam igy:

$namespaces = $xml->getNamespaces(true);
if(isset($namespaces[""]))  // if you have a default namespace
{
// register a prefix for that default namespace:
$xml->registerXPathNamespace(”d”, $namespaces[""]);
// and use that prefix in all of your xpath expressions:
$ns = “d:”;
}
else
$ns = “”;
$xml->xpath(”/”.$ns.”DataSet/Body/OrigCurrency”);

Lófasz, mert igy sem jó. Olvasgattam tovább, s aztán rájöttem, hogy itt már én vagyok a hülye. Azt a nyamvadt namespace prefixet minden element neve elé oda kell biggyeszteni.

Tehát igy néz ki a teljes lekérdezés:

$ret['date'] = $xml->xpath(”/”.$ns.”DataSet/”.$ns.”Body/”.$ns.”Cube/@date”);
$ret['orig_currency'] = $xml->xpath(”/”.$ns.”DataSet/”.$ns.”Body/”.$ns.”OrigCurrency”);

Utálok korán kelni, főleg reggel 5kor, 4 óra alvás után. Ilyenkor egész nap semmi munkakedvem nincs. Pedig kéne már dolgozni valamit, de esik le a fejem a monitor előtt. S ilyenkor minden hülyeséget beleirok a kódba, amiből hülye hibák lesznek. Kereshetem, hogy mit basztam el, hol van pluszba karakter. Főleg ha nincs forditási hiba.

Szóval dolgozni kéne. Ez mindig este jut eszembe, s ilyenkor fél éjszakát dolgozok, reggel meg ugyanolyan fos kedvem van. Megyek is főzzek kávét, hátha jobb kedvem lesz.

Mai munkák: kell irjak egy XML parsert az Sfstats-os feedekhez. Egyszerű dolog nagyjából, csak unalmas, semmi új dolog. Már csütörtökön megirtam profitlesnek, hogy megcsinálom. Meg is lesz még ma. Persze kell hozzá kis cache-elő modul is, hogy ne növelje nagyon a forgalmunkat, s a cél honlap se lassuljon be tőle. Remélhetőleg Drupalba könnyű beilleszteni, mert én nem ismerem azt a CMS-t.

Másik munka: Mikinek meg kellene csinálni a Skiller v2.0-t. Átirni Smartyba, csomó képlet meg ilyenek. Ki kell nézni a régiből, amit nem én irtam. S elég összevisszaság van benne. Ez lehet elmarad, max nekikezdek a template rendszernek.

Blogba is jó lenne irni vmit, hogy legyenek látogatók. Valahogy lesz…

Megcsináltam ma, hogy az Sfstats-on a mai mérkőzések elérhetőek legyenek RSS formátumban. Minden sportágnak külön feed van. A cimek:

Ezen kivül másik fontos újitás, hogy a foci bajnokságok tabellái elérhetőek XML formátumban. Ezeket megkapjátok a különböző bajnokságok oldalain XML feed néven. Példa: az NB1 feed-je.

(tovább…)