Телескопы покупают здесь


A A A A Автор Тема: Посовесуйте XML парсер  (Прочитано 5009 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн andypАвтор темы

  • *****
  • Забанен!
  • Сообщений: 2 539
  • Благодарностей: 63
  • Мне нравится этот форум!
    • Сообщения от andyp
Посовесуйте XML парсер
« : 22 Мар 2008 [00:42:06] »
Посоветуйте, какой Open Source XML парсер для разбора простых
документов выбрать ? XML парсер нужен для программы расчета и уточнения
орбит астероидов OrbSearch.

halx

  • Гость
Re: Посовесуйте XML парсер
« Ответ #1 : 22 Мар 2008 [00:58:23] »
xml-xerces and xml-xalan - самые ходовые.

Оффлайн Galaxy Master

  • *****
  • Сообщений: 832
  • Благодарностей: 32
    • Сообщения от Galaxy Master
Re: Посовесуйте XML парсер
« Ответ #2 : 22 Мар 2008 [21:08:54] »
Посоветуйте, какой Open Source XML парсер для разбора простых
документов выбрать ?

Вопрос поставлен не корректно. Уточните пожалуйста что вы хотите делать: писать программу (если да, то на каком языке), скрипт или иное?
« Последнее редактирование: 23 Мар 2008 [15:03:43] от Galaxy Master »
Debian GNU/Linux

Оффлайн DVE

  • *****
  • Сообщений: 1 857
  • Благодарностей: 18
    • Сообщения от DVE
Re: Посовесуйте XML парсер
« Ответ #3 : 23 Мар 2008 [23:53:25] »
Если писать программу, то незачем что либо искать, в составе Винды есть уже встроенный IXMLDom от MS :) Да вроде из javascript он тоже доступен (хотя тут может ошибаюсь).
Celestron Nexstar 8", 80ED APO (был), ETX-125 (был), SW909 (был)

halx

  • Гость
Re: Посовесуйте XML парсер
« Ответ #4 : 24 Мар 2008 [03:21:48] »
Вопрос поставлен корректно. Автора просто не волнует винда это мак или линукс и на чём надо писать. Ему нужен опен сорс XML парсер. xalan и xerces - опен сорс, есть для всех платформ, большинства языков, в том числе скриптовых, даже таких как ДОС-БАТ.
« Последнее редактирование: 24 Мар 2008 [03:27:35] от halx »

Оффлайн andypАвтор темы

  • *****
  • Забанен!
  • Сообщений: 2 539
  • Благодарностей: 63
  • Мне нравится этот форум!
    • Сообщения от andyp
Re: Посовесуйте XML парсер
« Ответ #5 : 24 Мар 2008 [19:07:45] »
Думаю взять xerces. Задачка заключается в создании базы данных
астрометрии астероидов в OrbSearch.
Существующие форматы очень убогие, поэтому хочу использовать XML.
ОС - UNIX (Linux). Проект OpenSource, поэтому приветствуются желающие
помочь с XML парсером.

Оффлайн Galaxy Master

  • *****
  • Сообщений: 832
  • Благодарностей: 32
    • Сообщения от Galaxy Master
Re: Посовесуйте XML парсер
« Ответ #6 : 27 Мар 2008 [16:36:50] »
А кто такой OrbSearch ? Что-то гугль не охотно про него рассказывает...
Debian GNU/Linux

Оффлайн 1212Lupus

  • *****
  • Сообщений: 3 094
  • Благодарностей: 196
  • Мне стал не очень нравиться этот форум...
    • Сообщения от 1212Lupus
    • http://belastro.net
Re: Посовесуйте XML парсер
« Ответ #7 : 27 Мар 2008 [17:47:44] »
Цитата
А кто такой OrbSearch ? Что-то гугль не охотно про него рассказывает...
;D OrbSearch -- это программа, которую пишет Андрей Плеханов (andyp). ;)
Подробнее -- читайте ТУТ.
Радиоастрономы-любители -- объединяемся!


Если утро наступает в три -
Через два часа уже зажгут фонари.
Уже кончился день, а я только встал,
А я только что встал и уже устал.
(с) НОЛЬ

Оффлайн Galaxy Master

  • *****
  • Сообщений: 832
  • Благодарностей: 32
    • Сообщения от Galaxy Master
Re: Посовесуйте XML парсер
« Ответ #8 : 28 Мар 2008 [09:43:02] »
Раз это местная разработка, то это просто здорово! Интересно почему бы в качестве базы данных не взять MySQL, чтоб быстро качественно и удобно было?
Debian GNU/Linux

Оффлайн andypАвтор темы

  • *****
  • Забанен!
  • Сообщений: 2 539
  • Благодарностей: 63
  • Мне нравится этот форум!
    • Сообщения от andyp
Re: Посовесуйте XML парсер
« Ответ #9 : 28 Мар 2008 [13:11:46] »
Задача формулируется следующим образом -
есть два формата MPC и RWO астрометрии астероидов.
Они пришли к нам из эпохи перфокарт и имеют достаточно
ограниченный нерасширяемый формат. Надо изобрести текстовое
описание астрометрии для внутреннего представления OrbSearch.
Я склоняюсь к XML. Затем это описание можно держать в обычном
файле, MySQL или еще где-нибудь. Есть ли у кого-нибудь опыт создания
XML форматов ?

Оффлайн Ivan Mhitarov

  • Модератор
  • *****
  • Сообщений: 6 223
  • Благодарностей: 108
  • Награды Неоднократный победитель конкурса астрофото
    • Сообщения от Ivan Mhitarov
Re: Посовесуйте XML парсер
« Ответ #10 : 28 Мар 2008 [16:11:28] »
По моему - критерия два:
 1 - удобство для автора
 2 - доступность для других разработчиков
Поэтому не столь важно, XML, MySQL или FireBird, главное, чтобы формат хранения данных был описан в документации.
Иван Мхитаров
Кубанский Астрономический Клуб "45".

halx

  • Гость
Re: Посовесуйте XML парсер
« Ответ #11 : 28 Мар 2008 [18:10:13] »
Ну что вы, право, господа?  :) XML - самодокументирующийся формат. И очень свободный. Ключ=значение и все дела. И расширяй/сужай как хочется и когда хочется, главное старые ключи не менять сильно. Ну и деревьями не увлекаться. Если база большая - определить ключевые параметры и вынести их в корень или в отдельную ветку, а доп. данные в другие ветки, чтоб перфоманс парсера конкретной аппликухи (напр. OrbSearch) улучшить.

Например из вики:

<recipe name="bread" prep_time="5 mins" cook_time="3 hours">
   <title>Basic bread</title>
   <ingredient amount="3" unit="cups">Flour</ingredient>
   <ingredient amount="0.25" unit="ounce">Yeast</ingredient>
   <ingredient amount="1.5" unit="cups" state="warm">Water</ingredient>
   <ingredient amount="1" unit="teaspoon">Salt</ingredient>
   <instructions>
     <step>Mix all ingredients together.</step>
     <step>Knead thoroughly.</step>
     <step>Cover with a cloth, and leave for one hour in warm room.</step>
     <step>Knead again.</step>
     <step>Place in a bread baking tin.</step>
     <step>Cover with a cloth, and leave for one hour in warm room.</step>
     <step>Bake in the oven at 350°F for 30 minutes.</step>
   </instructions>
 </recipe>


Будет быстро искать по названию, времени приготовления и времени выпечки, а по ингредиентам - уже подольше. А вот инструкции - уже только для показа результата поиска (хотя тоже можно по ним искать конечно).
« Последнее редактирование: 28 Мар 2008 [18:34:50] от halx »

Оффлайн andypАвтор темы

  • *****
  • Забанен!
  • Сообщений: 2 539
  • Благодарностей: 63
  • Мне нравится этот форум!
    • Сообщения от andyp
Re: Посовесуйте XML парсер
« Ответ #12 : 29 Мар 2008 [00:13:39] »
Вот конкретный пример:

http://cfa-www.harvard.edu/iau/info/OpticalObs.html

Как его лучше оформить в XML ?

Оффлайн SF

  • *****
  • Сообщений: 516
  • Благодарностей: 8
    • Сообщения от SF
Re: Посовесуйте XML парсер
« Ответ #13 : 29 Мар 2008 [01:59:37] »
andyp>>Существующие форматы очень убогие, поэтому хочу использовать XML.

Но свою задачу они выполняют? Если - да, то зачем что-то менять?

andyp>>Надо изобрести текстовое описание астрометрии для внутреннего представления OrbSearch.

Если такие данные не выходят "за пределы POSIX-а", то лучше использовать форматы, поддающиеся лёгкой обработке стандартными инструментами POSIX - grep, sort, uniq, sed, awk... XML для этого будет крайне неудобен. Для документации, например, он подходит намного больше.

Эти вопросы - XML и вообще форматы [текстовых] данных рассмотрены в The Art of Unix Programming Эрика Рэймонда. (Глава 5. Textuality). A must для тех, кто начинал уже в эпоху PC.

Если после этого всё-таки будет интересен [радикально-ортодоксальный, фундаменталистский] парсер, стоит посмотреть expat. James Clark - автор самых первых в Сети открытых SGML-инструментов.



Galaxy Master>>почему бы в качестве базы данных не взять MySQL

Real Programmers Don't Use Pascal. А настоящие астрономы не используют MySQL.
Они используют PostgreSQL, в котором имеются такие полезные им вещи, как Q3C. В разделе документации находится PDF-файл с красивыми картинками порезанной небесной сферы, причём лежит он на сёрвере ГАИШ. Что позволяет надеяться на некоторую русскоязычную поддержку.

Оффлайн Stepa

  • *****
  • Сообщений: 1 990
  • Благодарностей: 44
  • Мне нравится этот форум!
    • Сообщения от Stepa
Re: Посовесуйте XML парсер
« Ответ #14 : 29 Мар 2008 [07:35:12] »
SQLite мог бы быть гораздо лучшей альтернативой MySQL.
We must hang together or we all shall hang separately

Оффлайн andypАвтор темы

  • *****
  • Забанен!
  • Сообщений: 2 539
  • Благодарностей: 63
  • Мне нравится этот форум!
    • Сообщения от andyp
Re: Посовесуйте XML парсер
« Ответ #15 : 29 Мар 2008 [18:14:45] »
andyp>>Существующие форматы очень убогие, поэтому хочу использовать XML.

Но свою задачу они выполняют? Если - да, то зачем что-то менять?

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

Текстовый формат нужен по двум причинам - переносимость и возможность ручного редактирования.

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

Итак в одной записи должно быть:

- Уникальный ID Обязательный параметр.
- Тип наблюдения - Перечислимый параметр
- Номер астероида (его может не быть) - целое число
- Название - строка ASCII могут быть пробелы внутри Обязательный параметр.
- Год, месяц и день наблюдения форме юлианского дня
т.е. число с плавающей запятой или в формате YYYY.MM.DDddd (обязательное поле)
- Точность времени наблюдения Число с плавающей запятой
- Прямое восхождение Обязательный параметр. Число с плавающей запятой или HH.MM.SSsss
- Точность прямого восхождения Число с плавающей запятой
- Склонение Обязательный параметр. Число с плавающей запятой или DD.MM.SSsss
- Точность склонения Число с плавающей запятой
- Магнитуда Число с плавающей запятой Необязательный параметр.
- Номер обсерватории - целое число Обязательный параметр.
- Приоритет Число с плавающей запятой Необязательный параметр.
- Источник информации - Перечислимый параметр
« Последнее редактирование: 29 Мар 2008 [19:04:46] от andyp »

Оффлайн Galaxy Master

  • *****
  • Сообщений: 832
  • Благодарностей: 32
    • Сообщения от Galaxy Master
Re: Посовесуйте XML парсер
« Ответ #16 : 31 Мар 2008 [15:50:16] »
Real Programmers Don't Use Pascal. А настоящие астрономы не используют MySQL.
Они используют PostgreSQL, в котором имеются такие полезные им вещи, как Q3C.

Вы говорите какие-то необоснованные вещи на уровне "это для лохов Страдивари делал скрипки, а для крутых парней он делал барабаны".

Не суть важно какой СУБД воспользоваться, возьмите хоть Oracle  - бесплатный вариант с ограничением в 4 Гб. Главное не в этом. Главное в том, что работать с данными проще через СУБД, а не руками парся текст. А с переносимостью проблем не будет никаких. И добавлять/изменять данные через SQL запросы гораздо быстрее и удобнее, как со стороны прикладной программы, так и для обычного пользователя. Кстати, конечная программа может иметь простенький интерфейс для редактирования данных в таблице. Это избавит пользователей от изучения целых 3-х команд SQL.

« Последнее редактирование: 31 Мар 2008 [15:51:50] от Galaxy Master »
Debian GNU/Linux

halx

  • Гость
Re: Посовесуйте XML парсер
« Ответ #17 : 31 Мар 2008 [19:37:40] »
А изменять структуры таблиц без "простенького" интерфейса тоже каждый пользователь умеет? А на голом компьютере слабо DB просматривать в ноутпаде? Я под MySQL много чего написал, а SQL запросы до сих пор в справочнике подсматриваю. Нет уж, XML гораздо гибче и понятнее любого SQL.

Оффлайн lazyBSD

  • *****
  • Сообщений: 3 335
  • Благодарностей: 10
    • Сообщения от lazyBSD
Re: Посовесуйте XML парсер
« Ответ #18 : 01 Апр 2008 [00:00:46] »
Нет уж, XML гораздо гибче и понятнее любого SQL.
Я за POSIX, и на 100% поддерживаю SF. ::)

Итак в одной записи должно быть:
...
Какой смысл запихивать все это в DBMS или XML?
/ссылка запрещена правилами форума/

Оффлайн Galaxy Master

  • *****
  • Сообщений: 832
  • Благодарностей: 32
    • Сообщения от Galaxy Master
Re: Посовесуйте XML парсер
« Ответ #19 : 01 Апр 2008 [20:02:33] »
А тема вообще маньячная. Потому что странно, что девелопер софта сам не может определиться чем ему пользовать в СВОЕЙ разработке.  ;D
Debian GNU/Linux