Старый 12.08.2008, 22:19   #1
Специалист
 
Аватар для eeX
 
Регистрация: 09.11.2007
Сообщений: 482
Вес репутации: 0
eeX не любят в этих краяхeeX не любят в этих краях
Angry SAPE API и её XML данные.

Наконец-то появилось немного времени для автоматизации сапы.

Стал разбираться с АПИ. С форматом запросов разобрался методом ненаучного тыка - описание на сайте действительности соответствует очень условно.

Короче, сосуна написал, диспенсер доится успешно. В итоге получаю некий XML.

Я, конечно, на своём веку всякого видал... Возможно, есть даже некий стандарт, который такой xml формат описывает. Но остаются вопросы:

1.Что курили те, кто разрабатывал такой формат?
2.Что мне теперь с этим щастьтем делать?

Для тех, кто это чудо не видел - даже не знаю, как правильно выразить это словами.

Это не теги с атрибутами. И не со вложенными элементами. И даже не аццкая мешанина атрибутов и элементов, как в *******е. Это просто какой-то пипец.

У тэгов есть масса вложенных элементов, первый из которых - название, второй - значение.

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

Если б наши программеры так писали - уволили бы нах, потому что:

1.В тексте много мусора - файл реально можно сделать в 3-4 раза меньше - это лишняя нагрузка на сервера, которые и так еле дышат.

2.С текстом нельзя работать стандартными хмл методами - к примеру, дату придётся парсить руками, вместо тупого присвоения типа "время" столбцу.

3.Текст не может быть обработан стандартными запросами XPath - только ручной разбор.

То есть складывается впечатление, что сделали не для того, чтобы было удобно пользоваться, а типа "нате - отъе№"сь"

Предложение

Написать ещё методы, возвращающие валидный и компактный xml-код в добавок к уже существующим. Старые методы оставить для обратной совместимости.

Хотя - пишу, и заранее уверен - нах это никому не нужно, администрация занята гораздо более важными и глобальными проблемами. Скорее всего админы ничего не заметят. Хотя, можете банить, как обычно - другого уже и не жду.
eeX вне форума   Ответить с цитированием
Старый 12.08.2008, 22:49   #2
Особый статус
 
Регистрация: 23.03.2008
Адрес: localhost
Сообщений: 2,594
Вес репутации: 322
Ufaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущее
Отправить сообщение для Ufaweb с помощью ICQ
По умолчанию

XML-RPC и xml - немного разные понятия
В инете валяется куча компонентов и классов для работы с xml-rpc, да тот же SOAP под Delphi (хотя тоже через заднепроходное отверстие т.к. немного не то).
Ufaweb вне форума   Ответить с цитированием
Старый 12.08.2008, 23:25   #3
Специалист
 
Аватар для eeX
 
Регистрация: 09.11.2007
Сообщений: 482
Вес репутации: 0
eeX не любят в этих краяхeeX не любят в этих краях
По умолчанию

Цитата:
Сообщение от Ufaweb Посмотреть сообщение
XML-RPC и xml - немного разные понятия
Спасибо - не в курсе был. Но от этого не легче никак.
eeX вне форума   Ответить с цитированием
Старый 13.08.2008, 00:53   #4
Специалист
 
Аватар для RXL
 
Регистрация: 01.11.2007
Адрес: Гондурас
Сообщений: 224
Вес репутации: 206
RXL скоро станет известенRXL скоро станет известен
По умолчанию

eeX, стоило так шуметь? Сперва надо было разобраться...

Спецификация XML RPC:
http://www.xmlrpc.com/spec

Формат даты не с потолка взят - iso8601.

Вот если реализация Сапы не соответствует стандарту - тогда кричи.
RXL вне форума   Ответить с цитированием
Старый 13.08.2008, 06:25   #5
Эксперт
 
Регистрация: 12.03.2008
Адрес: будете смеяться, но я-таки нерезидент
Сообщений: 2,663
Вес репутации: 296
sergbond - прекрасное будущееsergbond - прекрасное будущееsergbond - прекрасное будущееsergbond - прекрасное будущееsergbond - прекрасное будущееsergbond - прекрасное будущееsergbond - прекрасное будущееsergbond - прекрасное будущееsergbond - прекрасное будущееsergbond - прекрасное будущееsergbond - прекрасное будущее
По умолчанию

Цитата:
Сообщение от eeX Посмотреть сообщение
Спасибо - не в курсе был. Но от этого не легче никак.
Почему не легче? Теперь стало известно, что достаточно использовать RPC-библиотеки. Должно быть легче, однозначно.

Кстати, я распарсил данные через XPath - что я не так делал?
__________________
Подыскиваю умных реферралов.
sergbond вне форума   Ответить с цитированием
Старый 13.08.2008, 06:49   #6
Особый статус
 
Регистрация: 23.03.2008
Адрес: localhost
Сообщений: 2,594
Вес репутации: 322
Ufaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущее
Отправить сообщение для Ufaweb с помощью ICQ
По умолчанию

Цитата:
Сообщение от sergbond Посмотреть сообщение
Кстати, я распарсил данные через XPath - что я не так делал?
Может руки откуда положено растут?..
Ufaweb вне форума   Ответить с цитированием
Старый 13.08.2008, 07:49   #7
Специалист
 
Аватар для eeX
 
Регистрация: 09.11.2007
Сообщений: 482
Вес репутации: 0
eeX не любят в этих краяхeeX не любят в этих краях
По умолчанию

Цитата:
Сообщение от RXL Посмотреть сообщение
eeX

Формат даты не с потолка взят - iso8601.

Вот если реализация Сапы не соответствует стандарту - тогда кричи.
Где я утверждал обратное?

Добавлено через 3 минуты
Цитата:
Сообщение от sergbond Посмотреть сообщение
Почему не легче? Теперь стало известно, что достаточно использовать RPC-библиотеки. Должно быть легче, однозначно.

Кстати, я распарсил данные через XPath - что я не так делал?
Не легче - полюбому придётся трахаться на клиенте. Тупо кинуть на сервак и разобрать там не получится.

Да, и примерчик запроса в студию, если не затруднит. Что-то малость сомнительно.

Последний раз редактировалось eeX; 13.08.2008 в 07:49. Причина: Добавлено сообщение
eeX вне форума   Ответить с цитированием
Старый 13.08.2008, 07:59   #8
Эксперт
 
Регистрация: 12.03.2008
Адрес: будете смеяться, но я-таки нерезидент
Сообщений: 2,663
Вес репутации: 296
sergbond - прекрасное будущееsergbond - прекрасное будущееsergbond - прекрасное будущееsergbond - прекрасное будущееsergbond - прекрасное будущееsergbond - прекрасное будущееsergbond - прекрасное будущееsergbond - прекрасное будущееsergbond - прекрасное будущееsergbond - прекрасное будущееsergbond - прекрасное будущее
По умолчанию

Цитата:
Сообщение от eeX Посмотреть сообщение
Не легче - полюбому придётся трахаться на клиенте. Тупо кинуть на сервак и разобрать там не получится.
Почему не получится?

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>
__________________
Подыскиваю умных реферралов.
sergbond вне форума   Ответить с цитированием
Старый 13.08.2008, 08:47   #9
Специалист
 
Аватар для eeX
 
Регистрация: 09.11.2007
Сообщений: 482
Вес репутации: 0
eeX не любят в этих краяхeeX не любят в этих краях
По умолчанию

Цитата:
Сообщение от sergbond Посмотреть сообщение
Почему не получится?
Потому что речь не про пхп и даже не про веб-сервер.

За примерчик - спасибо, может удастся прикрутить...
eeX вне форума   Ответить с цитированием
Старый 13.08.2008, 09:32   #10
Эксперт
 
Регистрация: 12.03.2008
Адрес: будете смеяться, но я-таки нерезидент
Сообщений: 2,663
Вес репутации: 296
sergbond - прекрасное будущееsergbond - прекрасное будущееsergbond - прекрасное будущееsergbond - прекрасное будущееsergbond - прекрасное будущееsergbond - прекрасное будущееsergbond - прекрасное будущееsergbond - прекрасное будущееsergbond - прекрасное будущееsergbond - прекрасное будущееsergbond - прекрасное будущее
По умолчанию

Цитата:
Сообщение от eeX Посмотреть сообщение
Потому что речь не про пхп и даже не про веб-сервер.
XML-RPC - открытый стандарт, и библиотеки есть почти подо все. Нужно просто поискать. До сих пор не вижу проблемы.

Цитата:
За примерчик - спасибо, может удастся прикрутить...
Примерчик тоже тот еще
Я формирую им из ответа сапы другой XML, и потом работаю уже с ним - мне так удобнее.
__________________
Подыскиваю умных реферралов.
sergbond вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обновить данные о каталогах? 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, время: 15:58.