Работа с XML
28-06-2010
Ето един вариант за работа с PHP и XML

това е примерен код на XML

<evec_api version="2.0" method="marketstat_xml">

<marketstat>


<type id="34">

<all>
<volume>61539244658.00</volume>
<avg>2.71</avg>
<max>8.52</max>
<min>0.26</min>
<stddev>0.56</stddev>
<median>2.68</median>
</all>

<buy>
<volume>27179150680.00</volume>
<avg>2.42</avg>
<max>2.85</max>
<min>0.26</min>
<stddev>0.43</stddev>
<median>2.31</median>
</buy>

<sell>
<volume>34360093978.00</volume>
<avg>2.89</avg>
<max>8.52</max>
<min>2.49</min>
<stddev>0.51</stddev>
<median>2.78</median>
</sell>
</type>



<type id="11399">

<all>
<volume>11379499.00</volume>
<avg>5001.40</avg>
<max>10894.15</max>
<min>1.01</min>
<stddev>1775.28</stddev>
<median>4575.30</median>
</all>

<buy>
<volume>4534889.00</volume>
<avg>1752.26</avg>
<max>4404.00</max>
<min>1.01</min>
<stddev>1365.98</stddev>
<median>3030.07</median>
</buy>

<sell>
<volume>6844610.00</volume>
<avg>5797.20</avg>
<max>10894.15</max>
<min>4328.80</min>
<stddev>1379.08</stddev>
<median>5111.51</median>
</sell>
</type>

</marketstat>
</evec_api>

Ако го разгледате по внимателно се състои от няколко масива с данни например:
масив 1: е с червено
масив 2: е с синио

И така въпросът е как да присвоим стойност на променлива от дадено място в масива.
Това става по следният начин:

използваме тази функция да прочетем и присвоим целия XML документ


$get = file_get_contents('http://adres.com/fail.xml');
$xml = simplexml_load_string($get);

с този код е прихванат целият XML файл, сега трябва да отсеем нужната ни информация това става по следният начин, да кажем че ни трябва стойността на <min> ще се направи по следният начин:
създаваме променлива която ще приеме желаната стойност след което със този код:
$xml ->


$xml ->
се стартира четенето като се посочва отиването на по долно ниво по дървовидната структура тоест при нас става
$xml -> marketstat ->
с този код вече сме стигнали до мястото на двата масива с данни сега ще ние нужно да направим разлика между масивите това ще стане с
$xml -> marketstat -> type[0]

като се работи както с масиви в php "0" е първият запис от масива . след което се посочва от коя група на масива и коя стойност ни трябва. тоест ще изглежда така:

$promenliva1 = $xml -> marketstat -> type[0]-> sell -> min;
$promenliva2 =$xml -> marketstat -> type[0]-> buy -> min;



Надявам се да съм полезен на всеки заинтерисуван




/ Трябва да сте регистриран за да напишете коментар /
От: semprom
22:38 07-07-2010
Тази функция не я знаех. Мерси много :)
От: Mapu0
6:37 12-07-2010
Много добре е описано и обяснено браво :P
От: kosboss
21:20 28-09-2010
-Благодаря.
От: MaLa_NocHe
22:23 13-03-2011
Браво, нещо което не знаех, но отдавна мъчейки се да я разбера тази функция, но днес дойде реда и на нея да науча.
1