?

Log in

No account? Create an account
tech

XML бывает удобен. Детское.

Были времена, когда я пытался регулярками из XML значения доставать. Однако XPath несравнимо удобнее.

Если брать курсы валют от ЦБ:
http://www.cbr.ru/scripts/XML_daily.asp

То с использованием simple xml нужный курс берется совсем просто:

$xml=simplexml_load_string(file_get_contents('http://www.cbr.ru/scripts/XML_daily.asp'));
$euroNode=$this->xml->xpath('Valute[CharCode="EUR"]/Value');
$euroRate= (float) str_replace(',','.',$euroNode[0]);

И, чтобы не потерять — замечательные образцы XSLT-шаблонов от ibnteo.
Это может быть громоздко, но очень красиво :)
Данные и представление формы
Вывод списка колонками

Comments

Орбит детский, теперь со вкусом XML
Дык. Без XPath по XML ходить тяжко...
есть мнение, что xpath небыстр в simple XML
видите ли в чем дело. не быстр -- понятие относительное. мне раз вдень считать курс валют -- так это быстродействие и не видно.

обычно xpath себя оправдывает. если он стал для вас бутылочным горлышком, то у меня подозрения, что и регулярки не спасут :)

xml-xpath хороший пример полной такой задачки с формализованным языком работы с данными. и поэтому она часто бывает полезна.

а так тормозит все. PHP тормозит, апач тормозит, ООП тормозит, SQL тормозит, регулярки против циклов тормозят, шаблоны тормозят, и знаменитые двойные кавычки тоже тормозят. Даже вызов функции тормозит. Ну тормозят :) и что?
Да, я сам использовал XPath, но в XSLT-преобразованиях. В simple xml такой необходимости пока не было.

Есть ещё два замечательных жизненных правила "не заниматься преждевременной оптимизацией" и "у вас ещё нет большой нагрузки", которые в общем-то подтверждают, что вы написали выше.

К "всё тормозит" ещё можно добавить ORM ;)
в то же время simplexml весьма ограничен в возможностях
Valute? Итальянцы, что ли, делали?
кто ж их теперь поймет :)
там и корневой элемент ValCurs...
с какого языка?
Оно ж всё тормознутое дико... я всегда регекспом достаю
с помощью того, simple xml иногда можно дойти до нужных элементов без xpath.
смотря что делать.
обычно удобно, что раз -- и работает :)

это ж даже не на сайте при показе страниц. это при получении данных. удобно также, когда забираешь прайсы от партнеров -- регулярками добить кривой хтмл до валидного xml и потом разобрать через удобный доступ, а не регулярки.

каждый инструмент на своем месте. как обычно впрочем.