JAVA and XML parsing
Правила форума
Пожалуйста, ознакомьтесь с правилами данного форума
Пожалуйста, ознакомьтесь с правилами данного форума
- dima
- Житель
- Сообщения: 690
- Зарегистрирован: 19 фев 2003, 19:26
- Откуда: Хабаровск->Toronto
JAVA and XML parsing
I have to parse XML data coming as string and create instances of Users (I have class ready for that).
I found different examples how to parse XML, but I need advice.
what the fastest (from performance point of view) way to parse XML in my case
<Users>
<User><Name>U1</Name><Id>1</Id></User>
<User><Name>U2</Name><Id>2</Id></User>
<User><Name>U3</Name><Id>3</Id></User>
.....
</Users>
I found different examples how to parse XML, but I need advice.
what the fastest (from performance point of view) way to parse XML in my case
<Users>
<User><Name>U1</Name><Id>1</Id></User>
<User><Name>U2</Name><Id>2</Id></User>
<User><Name>U3</Name><Id>3</Id></User>
.....
</Users>
- Stanislav
- Mr. Minority Report
- Сообщения: 45335
- Зарегистрирован: 19 окт 2005, 16:33
- Откуда: Moscow - Richmond - New Wesт - Burnaby - PoCo
Re: JAVA and XML parsing
А вы сами что ли парсить собираетесь? 
Почему бы не взять стандартный парсер...
http://xerces.apache.org

Почему бы не взять стандартный парсер...
http://xerces.apache.org
- dima
- Житель
- Сообщения: 690
- Зарегистрирован: 19 фев 2003, 19:26
- Откуда: Хабаровск->Toronto
Re: JAVA and XML parsing
сам парсить не буду. Я нашел несколько вариантов и не знаю какой выбрать.Stanislav писал(а):А вы сами что ли парсить собираетесь?
Почему бы не взять стандартный парсер...
http://xerces.apache.org
Кто из них самый быстрый ?
- Stanislav
- Mr. Minority Report
- Сообщения: 45335
- Зарегистрирован: 19 окт 2005, 16:33
- Откуда: Moscow - Richmond - New Wesт - Burnaby - PoCo
Re: JAVA and XML parsing
Давайте подождем Джава-грандов - у меня не было таких файлов, чтобы перформанс XML парсинга был критичен...dima писал(а):сам парсить не буду. Я нашел несколько вариантов и не знаю какой выбрать.Stanislav писал(а):А вы сами что ли парсить собираетесь?
Почему бы не взять стандартный парсер...
http://xerces.apache.org
Кто из них самый быстрый ?
- Правильные пацаны
- Маньяк
- Сообщения: 1776
- Зарегистрирован: 29 апр 2009, 20:14
Re: JAVA and XML parsing
вариантов 2 - SAX и DOM.dima писал(а):сам парсить не буду. Я нашел несколько вариантов и не знаю какой выбрать.Stanislav писал(а):А вы сами что ли парсить собираетесь?
Почему бы не взять стандартный парсер...
http://xerces.apache.org
Кто из них самый быстрый ?
один - евент ориентед - надо запоминать значения во время парсинга,
сложней в имплементации, меньше жрет памяти и быстрей должно быть.
Второй - дом - парсит, загружает усе в память и потом можно там бродить.
Легче имплементировать, но если много больших будет грузить память
- Marmot
- Графоман
- Сообщения: 39293
- Зарегистрирован: 17 фев 2003, 17:58
- Откуда: Caulfeild
- Контактная информация:
Re: JAVA and XML parsing
Вариантов на самом деле побольше будет, на мой взгляд StAX это самый оптимал...Правильные пацаны писал(а):вариантов 2 - SAX и DOM.dima писал(а):сам парсить не буду. Я нашел несколько вариантов и не знаю какой выбрать.Stanislav писал(а):А вы сами что ли парсить собираетесь?
Почему бы не взять стандартный парсер...
http://xerces.apache.org
Кто из них самый быстрый ?
http://www.devx.com/Java/Article/30298
http://download.oracle.com/docs/cd/E178 ... JSXP2.html
- alpax
- Графоман
- Сообщения: 10575
- Зарегистрирован: 04 мар 2003, 17:39
- Откуда: Richmond, BC
Re: JAVA and XML parsing
Для такого XML - однозначно SAX или его вариации, точно не DOM!dima писал(а):what the fastest (from performance point of view) way to parse XML in my case
<Users>
<User><Name>U1</Name><Id>1</Id></User>
<User><Name>U2</Name><Id>2</Id></User>
<User><Name>U3</Name><Id>3</Id></User>
.....
</Users>
- Marmot
- Графоман
- Сообщения: 39293
- Зарегистрирован: 17 фев 2003, 17:58
- Откуда: Caulfeild
- Контактная информация:
Re: JAVA and XML parsing
для такого может и SAX сойдет, а вот если дерево ветвистое, то StAX значительно удобнее, при той же скорости...alpax писал(а):Для такого XML - однозначно SAX или его вариации, точно не DOM!dima писал(а):what the fastest (from performance point of view) way to parse XML in my case
<Users>
<User><Name>U1</Name><Id>1</Id></User>
<User><Name>U2</Name><Id>2</Id></User>
<User><Name>U3</Name><Id>3</Id></User>
.....
</Users>
- alpax
- Графоман
- Сообщения: 10575
- Зарегистрирован: 04 мар 2003, 17:39
- Откуда: Richmond, BC
Re: JAVA and XML parsing
Верю.Marmot писал(а):для такого может и SAX сойдет, а вот если дерево ветвистое, то StAX значительно удобнее, при той же скорости...
Но для линейного SAX хватит, и overhead будет минимальный. Впрочем, я не в курсе, что именно добавляет StAX (судя по названию, принцип у него должен быть похож на SAX), возможно и с ним будет не хуже по скорости, так что если сильно удобнее - можно и его, я потому и упомянул "вариации".
-
- Пользователь
- Сообщения: 95
- Зарегистрирован: 09 май 2010, 13:49
Re: JAVA and XML parsing
Проще проэкспериментировать с разными классами "разбирающими" XML в объекты. Проблема скорее всего станет в использовании памяти.. Если есть доступ к исходным кодам надо посмотреть чтобы не сильно дурили с рекурсией... Насколько быстро надо?dima писал(а):I have to parse XML data coming as string and create instances of Users (I have class ready for that).
I found different examples how to parse XML, but I need advice.
what the fastest (from performance point of view) way to parse XML in my case
<Users>
<User><Name>U1</Name><Id>1</Id></User>
<User><Name>U2</Name><Id>2</Id></User>
<User><Name>U3</Name><Id>3</Id></User>
.....
</Users>
- alpax
- Графоман
- Сообщения: 10575
- Зарегистрирован: 04 мар 2003, 17:39
- Откуда: Richmond, BC
Re: JAVA and XML parsing
Такой линейный XML "разбирать на объекты" не надо - он скорее всего считывается в массив или просто на ходу обрабатывается, поэтому тут ничего похожего на DOM не нужно. SAX или подобный потоковый парсер - быстрее и требует на порядки меньше памяти.buba писал(а):Проще проэкспериментировать с разными классами "разбирающими" XML в объекты. Проблема скорее всего станет в использовании памяти..
-
- Пользователь
- Сообщения: 95
- Зарегистрирован: 09 май 2010, 13:49
Re: JAVA and XML parsing
Ммм.. при любых раскладах это cpu bound task. По-сути алгоритм парсирования должен быть одинаков для всех парсеров а посему почти любой делает то же самое... И еще, если не исполнять XML по специфицакиции то, любое partial parsing не будет XML parser per se - парсирование объектов is a an essence of XMLalpax писал(а):Такой линейный XML "разбирать на объекты" не надо - он скорее всего считывается в массив или просто на ходу обрабатывается, поэтому тут ничего похожего на DOM не нужно. SAX или подобный потоковый парсер - быстрее и требует на порядки меньше памяти.buba писал(а):Проще проэкспериментировать с разными классами "разбирающими" XML в объекты. Проблема скорее всего станет в использовании памяти..
- Marmot
- Графоман
- Сообщения: 39293
- Зарегистрирован: 17 фев 2003, 17:58
- Откуда: Caulfeild
- Контактная информация:
Re: JAVA and XML parsing
Гы-ы, сразу видно "абстрактного теоретика", незнающего чем DOM от SAX -а отличается... одна глубокомысленная фраза " если не исполнять XML по специфицакиции" чего стоит, даже если проигнорировать "специфицакицию" ...buba писал(а):Ммм.. при любых раскладах это cpu bound task. По-сути алгоритм парсирования должен быть одинаков для всех парсеров а посему почти любой делает то же самое... И еще, если не исполнять XML по специфицакиции то, любое partial parsing не будет XML parser per se - парсирование объектов is a an essence of XMLalpax писал(а):Такой линейный XML "разбирать на объекты" не надо - он скорее всего считывается в массив или просто на ходу обрабатывается, поэтому тут ничего похожего на DOM не нужно. SAX или подобный потоковый парсер - быстрее и требует на порядки меньше памяти.buba писал(а):Проще проэкспериментировать с разными классами "разбирающими" XML в объекты. Проблема скорее всего станет в использовании памяти..
- CdR
- Графоман
- Сообщения: 11245
- Зарегистрирован: 11 окт 2004, 19:27
- Откуда: Европа, центр, за углом направо.
Re: JAVA and XML parsing
Это только у меня сложилось вчепятление, что в этом теоритизировании предмет обсуждения уже остался за кадром?buba писал(а):... И еще, если не исполнять XML по специфицакиции то, любое partial parsing не будет XML parser per se - парсирование объектов is a an essence of XML
- Marmot
- Графоман
- Сообщения: 39293
- Зарегистрирован: 17 фев 2003, 17:58
- Откуда: Caulfeild
- Контактная информация:
Re: JAVA and XML parsing
Кстати, фраза "парсирование объектов is a an essence of XML" это ваще улет, она показывает полное непонимание, как XML вообще, так и данного конкретного топика, произнесшим ее оратором...CdR писал(а):Это только у меня сложилось вчепятление, что в этом теоритизировании предмет обсуждения уже остался за кадром?buba писал(а):... И еще, если не исполнять XML по специфицакиции то, любое partial parsing не будет XML parser per se - парсирование объектов is a an essence of XML