<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Marius Barbulescu &#124; Freshcolors &#187; xpath</title>
	<atom:link href="http://www.freshcolors.ro/blog/tag/xpath/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.freshcolors.ro/blog</link>
	<description>Vor încerca să ne-ntreacă, dar n-o să poată…</description>
	<lastBuildDate>Tue, 18 Jan 2011 12:00:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Preluare curs valutar BNR update</title>
		<link>http://www.freshcolors.ro/blog/2009/08/20/preluare-curs-valutar-bnr-update/</link>
		<comments>http://www.freshcolors.ro/blog/2009/08/20/preluare-curs-valutar-bnr-update/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 12:25:43 +0000</pubDate>
		<dc:creator>M.B.</dc:creator>
				<category><![CDATA[Articole]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[bnr]]></category>
		<category><![CDATA[curs valutar]]></category>
		<category><![CDATA[dom]]></category>
		<category><![CDATA[xpath]]></category>

		<guid isPermaLink="false">http://www.freshcolors.ro/blog/?p=241</guid>
		<description><![CDATA[Acum ceva vreme am postat o modalitate rapidă de a preluat cursul valutar complet de la bnr. Azi un prieten căuta o modalitate la fel de rapidă de a prelua cursul valutar, însă doar pentru USD şi EURO, fără să preia toate valutele şi să verifice dacă sunt cele dorite. Cum se poate rezolva lucrul [...]]]></description>
			<content:encoded><![CDATA[<p>Acum ceva vreme am postat<a href="http://www.freshcolors.ro/blog/2008/09/preluarea-cursului-bnr-in-mai-putin-de-10-linii-de-cod"> o modalitate rapidă</a> de a preluat cursul valutar complet de la bnr. Azi un prieten căuta o modalitate la fel de rapidă de a prelua cursul valutar, însă doar pentru USD şi EURO, fără să preia toate valutele şi să verifice dacă sunt cele dorite. Cum se poate rezolva lucrul ăsta? Răspunsul este XPath.</p>
<pre class="brush:php">
 /*
 * initiez clasa DOMDocument, reprezentand fisierul xml incarcat
 */
 $dom = new DOMDocument();
 $dom-&gt;preserveWhiteSpace = false;

 /*
 * incarc fisierul xml, specificand adresa completa
 */
 $dom-&gt;load( "http://www.bnro.ro/nbrfxrates.xml");
/*
* initializare XPath
*/
$xpath = new DOMXpath($dom);
$xpath->registerNamespace('xsd', 'http://www.bnr.ro/xsd');
 /*
 *  preiau intr-un obiect iterabil (DOMNodeList) lista elementelor ce indeplinesc doleantele mele
 */
 $valute = $xpath-&gt;query( "xsd:Body/xsd:Cube/xsd:Rate[@currency='USD' or @currency='EUR']" );
 /*
 * verific daca sunt elemente de acest tip
 */

 if ( $valute )
 {
 $new_valute = array();

 /*
 * in caz afirmativ, iterez prin ele si le preiau intr-un array ce-mi convine
 */
 foreach ( $valute as $valuta )
 {
 $new_valute[$valuta-&gt;getAttribute('currency')] = $valuta-&gt;nodeValue;
 }
 }
</pre>
<p>Prin XPath putem selecta rapid doar elementele care corespund anumitor criterii, căutând după o cale (path) indicată de noi.  În cazul în care fişierul xml conţine namespace-uri (ca în cazul acesta) ele trebuie anunţate la început, pentru că altfel nu vom primi nici un rezultat. Good luck <img src='http://www.freshcolors.ro/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><em>last update: 01.2011.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.freshcolors.ro/blog/2009/08/20/preluare-curs-valutar-bnr-update/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

