Архив метки: xml

Берем погоду у Яндекса в xml формате

Задача: получить погоду на сегодня и на завтра.

Решение: воспользуемся сервисом pogoda.yandex.ru
1. Найдем свой код города по справочнику https://pogoda.yandex.ru/static/cities.xml
2. По ссылке вида http://export.yandex.ru/weather-ng/forecasts/код_города.xml, мы имеем погоду в формате xml. Распарсим её например так:
<?php
 $wz = new SimpleXMLElement($xml);
 $cn=0;
 foreach ($wz->day as $value) {
  $cnt=0;
  foreach ($value->hour as $hr) {
  if (($cnt==2) or ($cnt==12) or ($cnt==18)) {
    $t=$hr->temperature;
    $weather_condition=$hr->weather_condition[«code»];
    echo «$t;$weather_condition</br>»;
   };
   $cnt++;
  };
  $cn++;
  if ($cn==2) {die();};
}
?>

Выгрузка списка контрагентов в XML (1C 8.2)

Достаточно простой код, используя обьект 1С ЗаписьXML:

 Запрос = Новый Запрос;
 Запрос.Текст = 
 "ВЫБРАТЬ
	|	Контрагенты.Наименование как имя,
	|	Контрагенты.НаименованиеПолное как полноеимя,
	|	Контрагенты.Код как код,
	|	Контрагенты.ИНН как инн,
	|	Контрагенты.КПП как кпп,
	|	Контрагенты.Ссылка,
	|	Контрагенты.Покупатель как покупатель,
	|	Контрагенты.Поставщик как поставщик
	|ИЗ
	|	Справочник.Контрагенты КАК Контрагенты";
	
  Результат = Запрос.Выполнить().Выбрать();  
  ЗаписьXML = Новый ЗаписьXML;
  ЗаписьXML.ОткрытьФайл("\\10.80.16.34\Documents\counterpart.xml","UTF-8");
  ЗаписьXML.ЗаписатьОбъявлениеXML();

  ЗаписьXML.ЗаписатьНачалоЭлемента("export");
  пока  Результат.Следующий() цикл
   	 ЗаписьXML.ЗаписатьНачалоЭлемента("counterpart");
	 ЗаписьXML.ЗаписатьБезОбработки("<name>"+Результат.имя+"</name>");
	 ЗаписьXML.ЗаписатьБезОбработки("<fullname>"+Результат.полноеимя+"</fullname>");
	 ЗаписьXML.ЗаписатьБезОбработки("<code>"+Результат.код+"</code>");
	 ЗаписьXML.ЗаписатьБезОбработки("<inn>"+Результат.инн+"</inn>");
	 ЗаписьXML.ЗаписатьБезОбработки("<kpp>"+Результат.кпп+"</kpp>");
	 ЗаписьXML.ЗаписатьБезОбработки("<buyer>"+Результат.покупатель+"</buyer>");
	 ЗаписьXML.ЗаписатьБезОбработки("<supplier>"+Результат.поставщик+"</supplier>");
	 ЗаписьXML.ЗаписатьКонецЭлемента();

  конеццикла;
  ЗаписьXML.ЗаписатьКонецЭлемента();

Простая обработка XML файлов на PHP

Самый простой способ работать с XML в PHP — использовать функцию simplexml_load_file. Функция возвращает значение false в случае ошибки чтения и массив DOM в случае успеха. Не применимо к большим файлам, ибо весь файл в данном случае грузится в память.

Пример файла XML:

<?xml version="1.0" encoding="windows-1251" ?> 
<tables>
<table name="org">
<reqtable name="users">
<fromkey>id</fromkey> 
<tokey>orgid</tokey> 
</reqtable>
<reqtable name="places">
<fromkey>id</fromkey> 
<tokey>orgid</tokey> 
</reqtable>
<reqtable name="equipment">
<fromkey>id</fromkey> 
<tokey>orgid</tokey> 
</reqtable>
</table>
</tables>

Пример файла на PHP — обработчик:

if (file_exists('delete.xml')) {
    $xml = simplexml_load_file('delete.xml');
    var_dump($xml); // вывод структуры "для наглядности"
    echo "<hr>";
        foreach($xml->table as $data)
        {
         echo "Обработка таблицы: $data[name]<br/>";
         foreach($data->reqtable as $rectable)
         {
          echo "- зависимость $rectable[name] (в $rectable[name].$rectable->tokey нет значений $data[name].$rectable->fromkey)<br/>";   
         };
        };
} else {
    exit('Ошибка открытия схемы delete.xml');
}