Технические вопросы по UTM 5.0
badimka
Сообщения: 3 Зарегистрирован: Вт июн 21, 2011 15:28
Сообщение
badimka » Вт июн 21, 2011 15:44
Здравствуйте!
Обычный запрос урфе:
Код: Выделить всё
<urfa>
<call function="rpcf_get_userinfo">
<parameter name="user_id" comment="Usert ID"/>
</call>
<set dst="account_id" value="account_id_array"/>
<call function="rpcf_get_user_tariffs">
<parameter name="user_id" comment="User ID"/>
<parameter name="account_id" comment="Accaunt ID"/>
</call>
</urfa>
выдаст примерно такое
Код: Выделить всё
...
<call function="rpcf_get_userinfo">
...
<call function="rpcf_get_user_tariffs">
<output>
<integer name="user_tariffs_size" value="2"/>
<array name="i">
<item>
<integer name="tariff_current_array" value="262"/>
<integer name="tariff_next_array" value="340"/>
<integer name="discount_period_id_array" value="4699"/>
<integer name="tariff_link_id_array" value="4516"/>
</item>
</array>
</output>
</call>
...
При нескольких аккаунтах не понятно к какому из них принадлежит
rpcf_get_user_tariffs . Приходится "определять" по очередности вывода (ну или разбивать запрос)
А если бы была возможность выдавать в output некоторые входящие данные (в этом примере account_id) то всё бы отлично распарсилось.
Форумчане, подскажите есть ли такая возможность в urfe? Документацию просмотрел не нашёл ничего кроме.
Чую должен быть способ.
MaxDM
Сообщения: 313 Зарегистрирован: Пн апр 03, 2006 10:26
Контактная информация:
Сообщение
MaxDM » Вт июн 21, 2011 18:00
Распарсивать вывод надо чем-нибудь.
littlesavage
Сообщения: 120 Зарегистрирован: Вс ноя 22, 2009 02:41
Откуда: Чебоксары
Сообщение
littlesavage » Вт июн 21, 2011 18:14
Код: Выделить всё
<function name="rpcf_get_user_tariffs" id="0x3017">
<input>
<integer name="user_id"/>
<integer name="account_id" default="0"/>
</input>
Т.е. можно выполнить несколько rpcf_get_user_tariffs со всеми account_id юзера.
По сути да, в выводе rpcf_get_user_tariffs не хватает поля account_id
badimka
Сообщения: 3 Зарегистрирован: Вт июн 21, 2011 15:28
Сообщение
badimka » Ср июн 22, 2011 06:54
Да, я парсю вывод. xpath рулит.
littlesavage писал(а): По сути да, в выводе rpcf_get_user_tariffs не хватает поля account_id
littlesavage меня понял.
Вот такие "неопреленности" мэйкмикрейзи.
Magnum72
Сообщения: 1947 Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:
Сообщение
Magnum72 » Ср июн 22, 2011 11:16
badimka писал(а): Здравствуйте!
Обычный запрос урфе:
Код: Выделить всё
<urfa>
<call function="rpcf_get_userinfo">
<parameter name="user_id" comment="Usert ID"/>
</call>
<set dst="account_id" value="account_id_array"/>
<call function="rpcf_get_user_tariffs">
<parameter name="user_id" comment="User ID"/>
<parameter name="account_id" comment="Accaunt ID"/>
</call>
</urfa>
выдаст примерно такое
Код: Выделить всё
...
<call function="rpcf_get_userinfo">
...
<call function="rpcf_get_user_tariffs">
<output>
<integer name="user_tariffs_size" value="2"/>
<array name="i">
<item>
<integer name="tariff_current_array" value="262"/>
<integer name="tariff_next_array" value="340"/>
<integer name="discount_period_id_array" value="4699"/>
<integer name="tariff_link_id_array" value="4516"/>
</item>
</array>
</output>
</call>
...
При нескольких аккаунтах не понятно к какому из них принадлежит
rpcf_get_user_tariffs . Приходится "определять" по очередности вывода (ну или разбивать запрос)
А если бы была возможность выдавать в output некоторые входящие данные (в этом примере account_id) то всё бы отлично распарсилось.
Форумчане, подскажите есть ли такая возможность в urfe? Документацию просмотрел не нашёл ничего кроме.
Чую должен быть способ.
Можно так:
Код: Выделить всё
<urfa>
<parameter name="test"/>
<out var="test"/>
</urfa>
И из недокументированного еще такое есть:
Код: Выделить всё
<urfa>
<set dst="a" value="2"/>
<set dst="b" value="1"/>
<add dst="c" arg1="a" arg2="b"/> <!--c=a+b-->
<div dst="c" arg1="c" arg2="2"/> <!--c=c/2-->
<mul dst="c" arg1="c" arg2="b"/> <!--c=b*c-->
<sub dst="c" arg1="0" arg2="c"/> <!--c=0-c-->
<out var="c"/>
</urfa>
badimka
Сообщения: 3 Зарегистрирован: Вт июн 21, 2011 15:28
Сообщение
badimka » Ср июн 22, 2011 13:27
Magnum72 - Отец.
Спасибо.
У Магнума свои мануалы какие-то....
А скажите пожалуйста, чем вы парсите XML от urfa?
ds
Сообщения: 380 Зарегистрирован: Пн сен 18, 2006 14:06
Сообщение
ds » Ср июн 22, 2011 21:15
А скажите пожалуйста, чем вы парсите XML от urfa?
Для php нормальный парсер только DOMDocument
VeroLom
Сообщения: 6 Зарегистрирован: Ср июн 15, 2011 15:30
Откуда: Санкт-Петербург
Контактная информация:
Сообщение
VeroLom » Пт июн 24, 2011 13:02
badimka писал(а): А скажите пожалуйста, чем вы парсите XML от urfa?
XML::Twig для Perl