Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Конвертер XLStoXML и обратно
#1
Добрый день, уважаемые форумчане.
Столкнулась с одним из, на мой взгляд, геморройных моментов по редактированию серверной части.
Многие команды, на данное время, стали вместо SQL данных запихивать все в XML. Если раньше редактировать тот же спаун-лист не составляло каких-то проблем или трудностей, то теперь иногда получается так, что чтобы изменить пакетно несколько данных, скажем по броне или предметам приходится пользоваться поиск-замена и прочими геморройностями.
Может быть XML и удобнее и быстрее для работы сервера, но.. но...
Править порой и добавлять некоторые вещи или мобов приводит к большой потере времени, сил и нервов. А также невозможности правки того же спаун-листа из админки (удаление мобов, добавление, перестановка).
Поэтому прошу местных гуру помочь в этом вопросе не только мне, но и другим пользователям, которые в процессе серверостроительства сталкиваются с этой "пустой" работой. Может быть существует какой-то автоматический механизм перегонки данных из XML в XLS (хотя бы) и обратно для пактеной обработки данных? Поделитесь, пожалуйста своими знаниями и инструментами.
ЗЫ шукала в нете - ничего адекватного не нашла.

Спасибо всем.
Ответ
#2
А Вы попробуйте, как все нормальные люди использовать XPath, а не руками править Big Grin
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ
#3
Pointer*Rage Написал:А Вы попробуйте, как все нормальные люди использовать XPath, а не руками править Big Grin

а можно поподробнее?
Ответ
#4
avemaria Написал:а можно поподробнее?

Джава "искаробки" поддерживает XPath. В чем проблема его использовать? Все описанные Вами проблемы чуть более чем полностью отпадают.
XPath - язык запросов для работы с XML. Позволяет производить выборки и т.д.
Чуть позже обьясню, что я имею ввиду и нафига он Вам нужен.

ЗЫ: XSL просто документ для валидации XML (так же юзается для трансформации одного XML-документа в другой), как вы собираетесь его использовать для ваших задач? Причем он тут вообще? Генерировать XLS можно по существующему XML документу, да, но у меня происходит диссонанс, когда говорят про обратный случай (XSL->XML), дата с потолка возьмется? XLS ее не содержит.

Добавлено через 2 минуты
Пардон. Перепутал XLS с XSD.

Добавлено через 14 минут
Поехал длинно-пост.

Есть аж два вариант решения проблемы. Первый костыльный, второй хороший.

Вариант первый.
И так. Формат экзеля (XLS) можно экспортировать в текстовый формат, где все делится обычными токенами. Мы делаем ORM этого документа и пишем ридер.
Пример ORM:
Код:
private int id;
private String name;
private int level;
...

public int getId() {
  return id;
}
public void setId(int id) {
  this.id = id;
}
...

Ридер через обычный LineReader (либо Files НИОшный), плюс парс через регулярки, либо через StringTokenizer.
Полученные и заполненные ORM'ы мы даем на сьедение XStream, он преобразует их в XML-документ по нужным паттернам, которые можно указать вручную, что бы не переписывать существующие парсеры на сервере.
Профит.

Вариант второй.
Выкидываем все XLS и просто используем xPath для работы с XML. Это нечто вроде SQL, но для XML. Smile

Вариант дополнительный, для наркоманов.
В сети есть фреймворк для работы с Windows-DOM, с помощью него можно распаршивать все эти ваши XLS/DOCX/..., но они все содержат кучу избыточной информации, плюс, я бы не стал так уж сильно доверять реализации закрытого формата.
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 2 Гость(ей)