PDA

Просмотр полной версии : XML-экспорт данных статистики


Djalolatdin Rakhimov
14.02.2009, 12:38
Рустам, а зачем в экспортируемых файлах статистика определяется тип шрифта (например, на http://www.uz/catalogue/toprating/topid/1)?

Font ss:FontName='Times New Roman'...

Djalolatdin Rakhimov
14.02.2009, 16:09
Рустам, хорошо бы еще xml экспорт данных всего раздела, например, http://www.uz/ru/catalogue/toprating/catid/389

Ruslan Aliev
17.02.2009, 08:57
Рустам, хорошо бы еще xml экспорт данных всего раздела, например, http://www.uz/ru/catalogue/toprating/catid/389
Заносим в план

Ruslan Aliev
17.02.2009, 08:58
Рустам, а зачем в экспортируемых файлах статистика определяется тип шрифта (например, на http://www.uz/catalogue/toprating/topid/1)? (http://www.uz/catalogue/toprating/topid/1%29?)

Font ss:FontName='Times New Roman'...
посмотрим.

Vitaliy Fioktistov
18.02.2009, 06:01
Рустам, а зачем в экспортируемых файлах статистика определяется тип шрифта (например, на http://www.uz/catalogue/toprating/topid/1)?

Font ss:FontName='Times New Roman'...


<?xml version='1.0' encoding='utf-8'?>
<?mso-application progid='Excel.Sheet'?>
<Workbook xmlns='urn:schemas-microsoft-com:office:spreadsheet'
xmlns:o='urn:schemas-microsoft-com:office:office'
xmlns:x='urn:schemas-microsoft-com:office:excel'
xmlns:ss='urn:schemas-microsoft-com:office:spreadsheet'
xmlns:html='http://www.w3.org/TR/REC-html40'>

В принципе, словом Excel сказано все. И парсеру приходится извращаться - стандартные методы работы с XML не помогают.
Может формировать попроще и самим?

Ruslan Aliev
18.02.2009, 09:22
Рустам, а зачем в экспортируемых файлах статистика определяется тип шрифта (например, на http://www.uz/catalogue/toprating/topid/1)? (http://www.uz/catalogue/toprating/topid/1%29?)

Font ss:FontName='Times New Roman'...


<?xml version='1.0' encoding='utf-8'?>
<?mso-application progid='Excel.Sheet'?>
<Workbook xmlns='urn:schemas-microsoft-com:office:spreadsheet'
xmlns:o='urn:schemas-microsoft-com:office:office'
xmlns:x='urn:schemas-microsoft-com:office:excel'
xmlns:ss='urn:schemas-microsoft-com:office:spreadsheet'
xmlns:html='http://www.w3.org/TR/REC-html40'>
В принципе, словом Excel сказано все. И парсеру приходится извращаться - стандартные методы работы с XML не помогают.
Может формировать попроще и самим?


В принципе самим значком http://www.uz/templates/images/a_hover_xml_xls.gif сказано все.
Вы попробуйте стандартные методы Excel. Благо они открыты.

Ruslan Aliev
18.02.2009, 09:41
Рустам, а зачем в экспортируемых файлах статистика определяется тип шрифта (например, на http://www.uz/catalogue/toprating/topid/1)? (http://www.uz/catalogue/toprating/topid/1%29?)

Font ss:FontName='Times New Roman'...

Когда делали, не стали наворачивать дизайн таблички.
Но минимально все же отформатировали.
Не думаю что это сильно мешает.

С текущим форматом XML только одна проблема. Он не открывается в OOScalc. В ближайшее время подправим его.

Vitaliy Fioktistov
18.02.2009, 13:36
...И парсеру приходится извращаться - стандартные методы работы с XML не помогают.
Может формировать попроще и самим?
Вы попробуйте стандартные методы Excel. Благо они открыты.
А нафиг? Мне стандартные методы PHP более актуальны :)

Timur Naimov
18.02.2009, 13:51
С текущим форматом XML только одна проблема. Он не открывается в OOScalc. В ближайшее время подправим его.
Может есть резон делать экспорт в Open XML?

Erkin Kuchkarov
18.02.2009, 13:55
Может есть резон делать экспорт в Open XML?
Это легкий путь... не наш метод :)

Evgeniy Sklyarevskiy
18.02.2009, 14:29
Надо делать в формате RSS2 чтобы содержание понимали все ридеры - иначе работа насмарку.
Основой RSS служит подмножество XML - но надо удержаться именно в формате RSS - это же стандарт де-факто для передачи контета в Сети.

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

Erkin Kuchkarov
18.02.2009, 14:40
Надо делать в формате RSS2 чтобы содержание понимали все ридеры - иначе работа насмарку.
Основой RSS служит подмножество XML - но надо удержаться именно в формате RSS - это же стандарт де-факто для передачи контета в Сети.

Если кто-то (Например Виталий) будет сам парсить, писать спец. скрипт для этого, вовсе не значит, что этим будут заниматься все - полно же уже стандартных ридеров, надо делать для них.
ЕС, у Вас есть одно удивительное свойство - нескончаемая энергия оказать всем и вся посильную помощь опираясь исключительно на свой багаж знаний.
Постарайтесь сохранить его, несмотря на любые упреки со стороны :)

Ахадбек Далимов
18.02.2009, 15:22
С текущим форматом XML только одна проблема. Он не открывается в OOScalc
там где то бесплатный декодер\кодер валялся (и не один если мне не изменяет память)

Vitaliy Fioktistov
18.02.2009, 15:25
Надо делать в формате RSS2 чтобы содержание понимали все ридеры - иначе работа насмарку.
Основой RSS служит подмножество XML - но надо удержаться именно в формате RSS - это же стандарт де-факто для передачи контета в Сети.

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

Мне то как раз формат RSS 2.0 наиболее предпочтителен. :)

Djalolatdin Rakhimov
18.02.2009, 15:45
В принципе, словом Excel сказано все.Согласен, проще отдавать стандартным xml, а не для excel.

Djalolatdin Rakhimov
18.02.2009, 15:47
Надо делать в формате RSS2 чтобы содержание понимали все ридеры - иначе работа насмарку.
Основой RSS служит подмножество XML - но надо удержаться именно в формате RSS - это же стандарт де-факто для передачи контета в Сети.

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

В rss также неплохо бы предусмотреть отдачу стата.

Djalolatdin Rakhimov
18.02.2009, 15:53
Рустам, а зачем в экспортируемых файлах статистика определяется тип шрифта (например, на http://www.uz/catalogue/toprating/topid/1)? (http://www.uz/catalogue/toprating/topid/1%29?)




<?xml version='1.0' encoding='utf-8'?>
<?mso-application progid='Excel.Sheet'?>
<Workbook xmlns='urn:schemas-microsoft-com:office:spreadsheet'
xmlns:o='urn:schemas-microsoft-com:office:office'
xmlns:x='urn:schemas-microsoft-com:office:excel'
xmlns:ss='urn:schemas-microsoft-com:office:spreadsheet'
xmlns:html='http://www.w3.org/TR/REC-html40'>
В принципе, словом Excel сказано все. И парсеру приходится извращаться - стандартные методы работы с XML не помогают.
Может формировать попроще и самим?


В принципе самим значком http://www.uz/templates/images/a_hover_xml_xls.gif сказано все.
Вы попробуйте стандартные методы Excel. Благо они открыты.

Отдача в формате Excel, а не чистом xml, неудобна еще и тем, чтобы невозможно импортировать модуль статистики в тот же sharepoint, который прекрасно бы отработал именно xml в чистом виде.

Erkin Kuchkarov
18.02.2009, 16:12
Отдача в формате Excel, а не чистом xml, неудобна еще и тем, чтобы невозможно импортировать модуль статистики в тот же sharepoint, который прекрасно бы отработал именно xml в чистом виде.
То есть тяжело написать XSLT который бы обработал XML? Не верю.

Djalolatdin Rakhimov
18.02.2009, 16:23
Отдача в формате Excel, а не чистом xml, неудобна еще и тем, чтобы невозможно импортировать модуль статистики в тот же sharepoint, который прекрасно бы отработал именно xml в чистом виде.
То есть тяжело написать XSLT который бы обработал XML? Не верю.

Ну так написать все что угодно можно. Хотелось бы использовать имеющийся инструментарий.

Timur Naimov
18.02.2009, 16:34
В rss также неплохо бы предусмотреть отдачу стата.
По одному feed на каждую строчку таблицы статистики? Зачем? Вы можете разработать любую схему (XSD) и выложить ее на www.uz. Тогда любой желающий сможет использовать любые средства работы с XML для обработки этой статистики.

Ахадбек Далимов
19.02.2009, 11:36
То есть тяжело написать XSLT который бы обработал XML? Не верю.
Эркин ака, Тимур - покажите пример - напишите и поделитесь с товарищами ... ну как пример (инициатива ...)

Ruslan Aliev
19.02.2009, 11:44
Текущий формат отдачи в XML прекрасно отображается в майкрософтовских продуктах. Так как делали именно для них, как для наиболее часто используемых.
Если что-то не работает, то подправим.

Ахадбек Далимов
19.02.2009, 11:47
Так как делали именно для них, как для наиболее часто используемых. Если что-то не работает, то подправим.
небольшая стилистическая поправочка - делали не для продуктов МС, а для пользователей которые пользуются продукцией МС, т.к. таких большинство ... (а то смысл не тот получается :))

Timur Naimov
19.02.2009, 14:09
То есть тяжело написать XSLT который бы обработал XML? Не верю.
Эркин ака, Тимур - покажите пример - напишите и поделитесь с товарищами ... ну как пример (инициатива ...)

Атхам ака, я уверен что работники Узинфокома знают о чем речь, но все равно попытаюсь формализовать свою мысль.
При получении XML от сторонней системы важно понимать формат данных. Для этого можно создать схему и выложить ее, например, на сайте www.uz. Тогда, при условии соотвествия выдаваемого XML этой схеме, я точно буду знать в каком элементе/аттрибуте искать информацию.
Пример схемы

<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://StatExport"
elementFormDefault="qualified"
targetNamespace="http://StatExport">

<xsd:element name="statspreadsheet" type="StatSpreadsheetType" />

<xsd:complexType name="StatSpreadsheetType">
<xsd:sequence maxOccurs="unbounded">
<xsd:element name="table" type="TableType" />
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="TableType">
<xsd:sequence maxOccurs="unbounded">
<xsd:element name="row" type="RowType" />
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="RowType">
<xsd:sequence maxOccurs="1">
<xsd:element name="id" type="GUID" />
<xsd:element name="date" type="xsd:dateTime" />
<xsd:element name="allHosts" type="xsd:int" />
<xsd:element name="uzHosts" type="xsd:int" />
</xsd:sequence>
</xsd:complexType>

<xsd:simpleType name="GUID">
<xsd:annotation>
<xsd:documentation xml:lang="en">
The representation of a GUID, generally the id of an element.
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:pattern value="([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})|(\{[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\})" />
</xsd:restriction>
</xsd:simpleType>

</xsd:schema>


А это сам XML, соответсвующий вышеуказанной схеме

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="StatExport.xslt" ?>
<statspreadsheet xmlns="http://StatExport">
<table>
<row>
<id>79605499-E7F2-4828-8512-DA3C1D10B11F</id>
<date>2009-02-01T00:00:00</date>
<allHosts>100</allHosts>
<uzHosts>50</uzHosts>
</row>
<row>
<id>9520D33C-001A-4f59-92CC-75029CFC7199</id>
<date>2009-02-02T00:00:00</date>
<allHosts>90</allHosts>
<uzHosts>40</uzHosts>
</row>
</table>
</statspreadsheet>


Ну и в конце можно написать XSLT для того, чтобы трансформировать (при необходимости) полученный XML во что-нибудь другое, например


<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:se="http://StatExport">

<xsl:output method="xml" indent="yes" encoding="utf-8"/>

<xsl:template match="se:statspreadsheet">
<html>
<head>
<title>Stat Export</title>
</head>
<body>
<xsl:apply-templates select="se:table">
</xsl:apply-templates>
</body>
</html>
</xsl:template>

<xsl:template match="se:table">
<table cellpadding="2px" cellspacing="2px">
<xsl:apply-templates select="se:row">
</xsl:apply-templates>
</table>
</xsl:template>

<xsl:template match="se:row">
<tr>
<td>
<xsl:value-of select="se:id"/>
</td>
<td>
<xsl:value-of select="se:date"/>
</td>
<td>
<xsl:value-of select="se:allHosts"/>
</td>
<td>
<xsl:value-of select="se:uzHosts"/>
</td>
</tr>
</xsl:template>

</xsl:stylesheet>


Инстркция
<?xml-stylesheet type="text/xsl" href="StatExport.xslt" ?>
в файле XML сообщает браузеру что нужно применить XSLT и в итоге, я получаю HTML:

<html xmlns:se="http://StatExport">
<head>
<title>Stat Export</title>
</head>
<body>
<table cellpadding="2px" cellspacing="2px">
<tr>
<td>79605499-E7F2-4828-8512-DA3C1D10B11F</td>
<td>2009-02-01T00:00:00</td>
<td>100</td>
<td>50</td>
</tr>
<tr>
<td>9520D33C-001A-4f59-92CC-75029CFC7199</td>
<td>2009-02-02T00:00:00</td>
<td>90</td>
<td>40</td>
</tr>
</table>
</body>
</html>


Тут не важно с какими продуктами работают клиенты. Привязки к вендору нет - просто XML. К томе же есть Open XML Format SDK 2.0 (http://www.microsoft.com/downloads/details.aspx?FamilyId=C6E744E5-36E9-45F5-8D8C-331DF206E0D0&displaylang=en), используя который можно легко создавать таблицы в формате open xml.

Erkin Kuchkarov
19.02.2009, 14:35
Хм... а в наше время было "незачОтно" рисовать в VS ;) И схем не было... DTD ручками писали :)
Дальше продолжу - а XSLT можно уже и функции какие нибудь использовать на JavaScript

Timur Naimov
19.02.2009, 15:03
Хм... а в наше время было "незачОтно" рисовать в VS
Потому что в "то время" VS еще не существовала? :)

Sergey Toshalovskiy
19.02.2009, 17:02
Подправили xml, теперь открывается в exel, OOScalc, sharepoint.

Ахадбек Далимов
19.02.2009, 18:01
Тут не важно с какими продуктами работают клиенты. Привязки к вендору нет - просто XML
Тимур - уважуха!
самое главное как Эркин ака в политику не залезай :) пож-ста и ... я тебе потом скажу что будет - тебе понравитсья

Timur Naimov
19.02.2009, 18:16
самое главное как Эркин ака в политику не залезай пож-ста и ... я тебе потом скажу что будет - тебе понравитсья
Я давно понял что политика - это не для меня... Особенно в споре с Эркин ака... на любой мой аргумент он находит 2 в ответ :)

Sergey Toshalovskiy
20.02.2009, 09:43
Подправили xml, теперь открывается в exel, OOScalc, sharepoint.

Уточню, подправили свой xml, а не тот что предложили выше.

Ахадбек Далимов
20.02.2009, 13:39
Уточню, подправили свой xml, а не тот что предложили выше.
а тот что предложили - попробовали (хотя бы в качестве эксперимента?)

Bakhadir Rakhimbaev
20.02.2009, 14:18
Уточню, подправили свой xml, а не тот что предложили выше.
а тот что предложили - попробовали (хотя бы в качестве эксперимента?)

В качестве эксперимента, конечно мы попробовали. А пробовал ли автор сам ? К примеру просмотреть все это хотя бы в excel.
Для конечных пользователей не нужен xml в "чистом" виде. А если кто-то хочет парсить все это дело, то проблем с этим быть не должно.

Timur Naimov
20.02.2009, 14:48
В качестве эксперимента, конечно мы попробовали. А пробовал ли автор сам ? К примеру просмотреть все это хотя бы в excel.
Для конечных пользователей не нужен xml в "чистом" виде. А если кто-то хочет парсить все это дело, то проблем с этим быть не должно.
Попробовал только что...
https://img.uforum.uz/images/2876923.jpg
Не менял ни строчки, честно. Просто я не совсем понимаю зачем в XML добавлять артефакты в виде названия шрифта или названия приложения. Ребят, я ж написал что вы все вкурсе... я никого не учу...

Ruslan Aliev
20.02.2009, 14:58
В качестве эксперимента, конечно мы попробовали. А пробовал ли автор сам ? К примеру просмотреть все это хотя бы в excel.
Для конечных пользователей не нужен xml в "чистом" виде. А если кто-то хочет парсить все это дело, то проблем с этим быть не должно.
Попробовал только что...

Если можно дайте URL с которого шло открытие XML.
И, если можно, точную версию Office.

Просто я не совсем понимаю зачем в XML добавлять артефакты в виде названия шрифта или названия приложения.

Бывает... я тоже много не понимаю. Это мне не мешает.

Ребят, я ж написал что вы все вкурсе... я никого не учу...
Да, я читал выше.

Timur Naimov
20.02.2009, 15:05
Если можно дайте URL с которого шло открытие XML.
Не совсем понял?
И, если можно, точную версию Office.
Microsoft Office Excel 2007 (12.0.6331.5000) SP1 MSO (12.0.6320.5000) (лицензионный :))

Timur Naimov
20.02.2009, 15:07
Бывает... я тоже много не понимаю. Это мне не мешает.
:) зачОт... а мне мешает... ничего с собой поделать не могу

Ruslan Aliev
20.02.2009, 16:09
Если можно дайте URL с которого шло открытие XML.
Не совсем понял?


Какой xml отчет с www.uz вы открывали?

Timur Naimov
20.02.2009, 16:14
Какой xml отчет с www.uz вы открывали?
Рустам, мы по ходу про разные вещи с Вами говорим:

а тот что предложили - попробовали (хотя бы в качестве эксперимента?)

В качестве эксперимента, конечно мы попробовали. А пробовал ли автор сам ? К примеру просмотреть все это хотя бы в excel.
Я открыл "хотя бы в Excel" свой XML, который выкладывал на предыдущей странице.

Ruslan Aliev
20.02.2009, 16:52
Какой xml отчет с www.uz (http://www.uz) вы открывали?
Рустам, мы по ходу про разные вещи с Вами говорим:

а тот что предложили - попробовали (хотя бы в качестве эксперимента?)

В качестве эксперимента, конечно мы попробовали. А пробовал ли автор сам ? К примеру просмотреть все это хотя бы в excel.
Я открыл "хотя бы в Excel" свой XML, который выкладывал на предыдущей странице.
Мда, я подумал что вы дали скриншот нашего XML отчета. Потому и удивился.

Бывает.