Я читал чтение и запись xml с использованием SAX, STAX и dom. Моя проблема в том, что даже после прочтения преимуществ и недостатков я все еще не уверен, что было бы лучше для моих целей - хотя DOM кажется самым простым, я буду запускать эту программу на очень слабом сервере с небольшой памятью Я стараюсь сделать программу более эффективной, если это возможно. Высокий спрос на сервер также будет способствовать повышению эффективности.Какой XML-синтаксический анализатор соответствует этим требованиям?
Вот что мне нужно:
Просто прочитать XML-документа, потянув различные данные из него. На данный момент я решил, что синтаксический анализатор SAX будет всем, что мне нужно, поскольку он, по-видимому, самый быстрый?
Однако мне также нужно иметь возможность генерировать XML-документы. В этот момент я подумал, что STAX - это то, что я должен использовать, поскольку он, похоже, имеет аналогичную функциональность для SAX, однако позволяет генерировать xml-код.
Самым сложным является то, что мне нужно иметь возможность читать существующий XML-документ и редактировать отдельные его части, то есть символы между стартовыми и конечными тегами. DOM выглядит лучше всего, но все говорят, что DOM использует много ресурсов и довольно медленный. Так возможно ли это со Stax?
Я хотел бы использовать РОМ, но опасаюсь с использованием памяти и процессора, и т.д.
Могу ли я спросить, сколько еще ресурсов было бы использовать по сравнению с Stax в реальном мире, например? Файлы xml вряд ли будут большими, и мне нужно будет только сделать несколько чтений и записей. То есть, программа является игрой, и вначале мне нужно загрузить информацию о игроке и в конце, найти информацию xml на игроке и внести поправки на основе производительности игроков как можно быстрее.
Большое спасибо за любые ответы/советы
Если файл XML не очень большой, не относитесь к эффективности. – Patashu
@Patashu извините - не лучший q: но что определяет большой XML-файл? Я не знаком с файлами xml, поэтому не знаю, насколько они могут быть большими. Спасибо –
Большой относительный, например. большой достаточно большой, чтобы вы не могли разобрать его без заметного замедления. Реализуйте его так, как это проще для вас, ТОГДА, ЕСЛИ, и только если он становится слишком медленным, ТОГДА вы смотрите, как ускорить его (научным образом, профилирование и т. Д.) – Patashu