Например, нужно обработать такое XML содержимое, которое храниться в файле на сервере
<ValCurs Date="23/12/2011" SetDate="23/12/2011" Name="Currency Service">
<Valute id="1">
<NumCode>036</NumCode>
<CharCode>AUD</CharCode>
<Nominal>100</Nominal>
<Name>австралійських доларів</Name>
<Value>809.4145</Value>
</Valute>
<Valute id="2"><NumCode>031</NumCode><CharCode>AZM</CharCode><Nominal>100</Nominal><Name>азербайджанських манатів</Name><Value>1016.0626</Value></Valute>
<Valute id="3"><NumCode>826</NumCode><CharCode>GBP</CharCode><Nominal>100</Nominal><Name>англійських фунтів стерлінгів</Name><Value>1252.0889</Value></Valute>
...
<Valute id="29"><NumCode>392</NumCode><CharCode>JPY</CharCode><Nominal>1000</Nominal><Name>японських єн</Name><Value>102.2627</Value></Valute>
</ValCurs>
Начнём:
$XML = file_get_contents(\'http://адрес...\'); // отсюда получяем данные
$File = "/home/.../file.txt"; // сюда сохраняем полученные данные
if ($XML){ // проверяем, удалось ли загрузить XML
if (mb_check_encoding($XML, \'UTF-8\')) {$XML = mb_convert_encoding($XML, \'Windows-1251\', \'UTF-8\');} // перекодируем в Windows-1251
// достаём нужные данные в массив
preg_match_all("/Date=\\\\\\\\"(\\\\\\\\d\\\\\\\\d\\\\\\\\/\\\\\\\\d\\\\\\\\d\\\\\\\\/\\\\\\\\d\\\\\\\\d\\\\\\\\d\\\\\\\\d)\\\\\\\\"/U", $XML, $date);
preg_match_all("/<CharCode>(.*)<\\\\\\\\/CharCode>/U", $XML, $char);
preg_match_all("/<Nominal>(.*)<\\\\\\\\/Nominal>/U", $XML, $nomi);
preg_match_all("/<Name>(.*)<\\\\\\\\/Name>/U", $XML, $name);
preg_match_all("/<Value>(.*)<\\\\\\\\/Value>/U", $XML, $valu);
echo \'Курсы НБУ на \'.$date[1][0];
$text = "";
for ($i=0; $i<count($char[1]); $i ) {
$text = \'<br />\'.$char[1][$i].\' \'.$nomi[1][$i].\' \'.$name[1][$i].\' \'.$valu[1][$i];
}
echo $text;
}
else echo "ошибка, не удалось загрузить XML данные";
file_put_contents($File, $text); // запись строки в файл