2013-06-27 4 views
2

Я читал чтение и запись xml с использованием SAX, STAX и dom. Моя проблема в том, что даже после прочтения преимуществ и недостатков я все еще не уверен, что было бы лучше для моих целей - хотя DOM кажется самым простым, я буду запускать эту программу на очень слабом сервере с небольшой памятью Я стараюсь сделать программу более эффективной, если это возможно. Высокий спрос на сервер также будет способствовать повышению эффективности.Какой XML-синтаксический анализатор соответствует этим требованиям?

Вот что мне нужно:

  1. Просто прочитать XML-документа, потянув различные данные из него. На данный момент я решил, что синтаксический анализатор SAX будет всем, что мне нужно, поскольку он, по-видимому, самый быстрый?

  2. Однако мне также нужно иметь возможность генерировать XML-документы. В этот момент я подумал, что STAX - это то, что я должен использовать, поскольку он, похоже, имеет аналогичную функциональность для SAX, однако позволяет генерировать xml-код.

  3. Самым сложным является то, что мне нужно иметь возможность читать существующий XML-документ и редактировать отдельные его части, то есть символы между стартовыми и конечными тегами. DOM выглядит лучше всего, но все говорят, что DOM использует много ресурсов и довольно медленный. Так возможно ли это со Stax?

Я хотел бы использовать РОМ, но опасаюсь с использованием памяти и процессора, и т.д.

Могу ли я спросить, сколько еще ресурсов было бы использовать по сравнению с Stax в реальном мире, например? Файлы xml вряд ли будут большими, и мне нужно будет только сделать несколько чтений и записей. То есть, программа является игрой, и вначале мне нужно загрузить информацию о игроке и в конце, найти информацию xml на игроке и внести поправки на основе производительности игроков как можно быстрее.

Большое спасибо за любые ответы/советы

+0

Если файл XML не очень большой, не относитесь к эффективности. – Patashu

+0

@Patashu извините - не лучший q: но что определяет большой XML-файл? Я не знаком с файлами xml, поэтому не знаю, насколько они могут быть большими. Спасибо –

+0

Большой относительный, например. большой достаточно большой, чтобы вы не могли разобрать его без заметного замедления. Реализуйте его так, как это проще для вас, ТОГДА, ЕСЛИ, и только если он становится слишком медленным, ТОГДА вы смотрите, как ускорить его (научным образом, профилирование и т. Д.) – Patashu

ответ

1

Использование Sax Как вы хотите изменить XML это не собирается, чтобы помочь вам

Использование DOM Поскольку вы заботитесь о памяти (КПД), это не готовя к работе

Использование Stax Это то, что помогает в ваших проблемах. Вы также указали на это. Как изменить XML с помощью Stax обсуждается here