12.08.2008, 22:19 | #1 |
Специалист
Регистрация: 09.11.2007
Сообщений: 482
Вес репутации: 0
|
SAPE API и её XML данные.
Наконец-то появилось немного времени для автоматизации сапы.
Стал разбираться с АПИ. С форматом запросов разобрался методом ненаучного тыка - описание на сайте действительности соответствует очень условно. Короче, сосуна написал, диспенсер доится успешно. В итоге получаю некий XML. Я, конечно, на своём веку всякого видал... Возможно, есть даже некий стандарт, который такой xml формат описывает. Но остаются вопросы: 1.Что курили те, кто разрабатывал такой формат? 2.Что мне теперь с этим щастьтем делать? Для тех, кто это чудо не видел - даже не знаю, как правильно выразить это словами. Это не теги с атрибутами. И не со вложенными элементами. И даже не аццкая мешанина атрибутов и элементов, как в *******е. Это просто какой-то пипец. У тэгов есть масса вложенных элементов, первый из которых - название, второй - значение. Одним словом - нихрена не xml а текстовый файл, на xml похожий. Единственное, что с ним можно сделать - это руками в цикле парсить текст и излекать из него значения. Если б наши программеры так писали - уволили бы нах, потому что: 1.В тексте много мусора - файл реально можно сделать в 3-4 раза меньше - это лишняя нагрузка на сервера, которые и так еле дышат. 2.С текстом нельзя работать стандартными хмл методами - к примеру, дату придётся парсить руками, вместо тупого присвоения типа "время" столбцу. 3.Текст не может быть обработан стандартными запросами XPath - только ручной разбор. То есть складывается впечатление, что сделали не для того, чтобы было удобно пользоваться, а типа "нате - отъе№"сь" Предложение Написать ещё методы, возвращающие валидный и компактный xml-код в добавок к уже существующим. Старые методы оставить для обратной совместимости. Хотя - пишу, и заранее уверен - нах это никому не нужно, администрация занята гораздо более важными и глобальными проблемами. Скорее всего админы ничего не заметят. Хотя, можете банить, как обычно - другого уже и не жду.
__________________
психология - недвижимость - SEO - Интернет |
12.08.2008, 22:49 | #2 |
Особый статус
|
XML-RPC и xml - немного разные понятия
В инете валяется куча компонентов и классов для работы с xml-rpc, да тот же SOAP под Delphi (хотя тоже через заднепроходное отверстие т.к. немного не то). |
12.08.2008, 23:25 | #3 |
Специалист
Регистрация: 09.11.2007
Сообщений: 482
Вес репутации: 0
|
Спасибо - не в курсе был. Но от этого не легче никак.
__________________
психология - недвижимость - SEO - Интернет |
13.08.2008, 00:53 | #4 |
Специалист
Регистрация: 01.11.2007
Адрес: Гондурас
Сообщений: 224
Вес репутации: 206
|
eeX, стоило так шуметь? Сперва надо было разобраться...
Спецификация XML RPC: http://www.xmlrpc.com/spec Формат даты не с потолка взят - iso8601. Вот если реализация Сапы не соответствует стандарту - тогда кричи.
__________________
* Портал программистов * Клуб программистов |
13.08.2008, 06:25 | #5 |
Эксперт
Регистрация: 12.03.2008
Адрес: будете смеяться, но я-таки нерезидент
Сообщений: 2,663
Вес репутации: 296
|
Почему не легче? Теперь стало известно, что достаточно использовать RPC-библиотеки. Должно быть легче, однозначно.
Кстати, я распарсил данные через XPath - что я не так делал?
__________________
|
13.08.2008, 07:49 | #7 | ||
Специалист
Регистрация: 09.11.2007
Сообщений: 482
Вес репутации: 0
|
Цитата:
Добавлено через 3 минуты Цитата:
Да, и примерчик запроса в студию, если не затруднит. Что-то малость сомнительно.
__________________
психология - недвижимость - SEO - Интернет Последний раз редактировалось eeX; 13.08.2008 в 07:49. Причина: Добавлено сообщение |
||
13.08.2008, 07:59 | #8 | ||
Эксперт
Регистрация: 12.03.2008
Адрес: будете смеяться, но я-таки нерезидент
Сообщений: 2,663
Вес репутации: 296
|
Цитата:
http://www.php.net/manual/en/book.xmlrpc.php Цитата:
Код:
<xsl:template match="methodResponse"> <pages> <xsl:for-each select="//data/value"> <xsl:for-each select="struct"> <page> <xsl:for-each select="member"> <xsl:if test="string(name)='status'"> <xsl:attribute name="status"> <xsl:value-of select="value/string"/> </xsl:attribute> </xsl:if> <xsl:if test="string(name)='nof_placements'"> <xsl:attribute name="nof_placements"> <xsl:value-of select="value/int"/> </xsl:attribute> </xsl:if> <xsl:if test="string(name)='level'"> <xsl:attribute name="level"> <xsl:value-of select="value/int"/> </xsl:attribute> </xsl:if> <xsl:if test="string(name)='pr'"> <xsl:attribute name="pr"> <xsl:value-of select="value/int"/> </xsl:attribute> </xsl:if> </xsl:for-each> </page> </xsl:for-each> </xsl:for-each> </pages> </xsl:template>
__________________
|
||
13.08.2008, 08:47 | #9 |
Специалист
Регистрация: 09.11.2007
Сообщений: 482
Вес репутации: 0
|
Потому что речь не про пхп и даже не про веб-сервер.
За примерчик - спасибо, может удастся прикрутить...
__________________
психология - недвижимость - SEO - Интернет |
13.08.2008, 09:32 | #10 | |
Эксперт
Регистрация: 12.03.2008
Адрес: будете смеяться, но я-таки нерезидент
Сообщений: 2,663
Вес репутации: 296
|
XML-RPC - открытый стандарт, и библиотеки есть почти подо все. Нужно просто поискать. До сих пор не вижу проблемы.
Цитата:
Я формирую им из ответа сапы другой XML, и потом работаю уже с ним - мне так удобнее.
__________________
|
|
Опции темы | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как обновить данные о каталогах? | Ashina | Вопросы от новичков | 2 | 20.06.2008 22:16 |
Обновить данные индекса бота | Mantius | Вопросы от новичков | 2 | 18.06.2008 09:30 |
Недостоверные данные. Page Rank | AndreyS | Ошибки при работе с системой | 11 | 01.10.2007 21:20 |
разные данные по расходу/доходу на разных ПК | Sasa | Ошибки при работе с системой | 12 | 17.08.2007 17:32 |
Показывает вчерашние данные по начислинным деньгам | asl | Ошибки при работе с системой | 5 | 15.03.2007 12:59 |
Часовой пояс GMT +3, время: 10:50.