JRuDevels

Jabber Russian Developers Forum.
Log in Register FAQ Memberlist Search JRuDevels Forum Index

JRuDevels Forum Index » Разработка и проектирование [Devel] » К вопросу о XML-парсерах.
Post new topic  Reply to topic View previous topic :: View next topic 
К вопросу о XML-парсерах.
PostPosted: Mon Mar 28, 2005 10:47 am Reply with quote
Binary
Разработчик
Разработчик
Joined: 17 Dec 2004
Posts: 1712
Location: Омск




Возращаюсь к вопросу об XML-парсерах для Delphi. Я сначала использовал JvSimpleXML, но он меня, можно сказать, подставил своей не поддержкой юникода. Естесственно, оставлять Jabber-плаг-ин без поддержки юникода никак нельзя, поэтому стал использовать OmniXML. Потом Треугольник обратил наше внимание, что в Delphi 7 есть класс TXMLDocument. В последнем своем плаг-ине DrawDesk, я использовал этот парсер, считаю лучшим решением, т.к. он идет вместе с Delphi 7. С Юникодом вроде бы проблем нет. По своей структуре сильно напоминает OmniXML.

_________________
And I'm feeling good!
View user's profile Send private message Send Jabber-message Visit poster's website HabaHaba - Fast communicate
PostPosted: Wed Apr 27, 2005 8:48 am Reply with quote
sevkin
Отметившийся
Отметившийся
Joined: 24 Apr 2005
Posts: 5




tinyxml... хм... да, не делпхи, но...

http://sourceforge.net/projects/tinyxml/

TinyXml is a simple, small, minimal, C++ XML parser that can be easily integrating into other programs. It reads XML and creates C++ objects representing the XML document. The objects can be manipulated, changed, and saved again as XML.

Development Status: 5 - Production/Stable, 6 - Mature

Intended Audience: Developers

License: zlib/libpng License

Operating System: All 32-bit MS Windows (95/98/NT/2000/XP), All POSIX (Linux/BSD/UNIX-like OSes), OS Portable (Source code to work with many OS platforms), Linux

Programming Language: C++

Topic: Software Development

Translations: English
View user's profile Send private message Visit poster's website
PostPosted: Mon Nov 28, 2005 5:21 pm Reply with quote
KRom
Разработчик
Разработчик
Joined: 07 Oct 2005
Posts: 242
Location: Tagan-York, South Russia




TXMLDocument это стандартный компонент Delphi, причем возмжно даже с 5 версии. Начиная с 6 версии он точно поставляется. А стандартность и бесплатность его только улучшают.

_________________
Ве?ьма веро?тно на?тупление неверо?тного.
View user's profile Send private message Send Jabber-message Visit poster's website AIM Address MSN Messenger ICQ Number
PostPosted: Mon Nov 28, 2005 9:00 pm Reply with quote
Binary
Разработчик
Разработчик
Joined: 17 Dec 2004
Posts: 1712
Location: Омск




ну насчет бесплатности ты погорячился. Делфи, по идее, не бесплатна...

_________________
And I'm feeling good!
View user's profile Send private message Send Jabber-message Visit poster's website HabaHaba - Fast communicate
PostPosted: Mon Nov 28, 2005 9:57 pm Reply with quote
KRom
Разработчик
Разработчик
Joined: 07 Oct 2005
Posts: 242
Location: Tagan-York, South Russia




Но делфи покупать что с парсером, что без него (если не учитывать Enterprise, Web, Standard версии). Так что, покупая делфя мы автоматически платим и за парсер, а вот уже использовать предоставленные компоненты или нет, решать нам. Меня интересует другой вопрос: Использует ли этот парсер движек от Ms Internet Explorer или он полностью "самописный". Если верить моей дыряой памяти, то он использует COM объекты IE при своей работе. При высоких требованиях к производительности это может вылиться в некоторые НО. Однако, это мое личное мнение, которое может быть ошибочным, поскольку, я уже больше года не занимался этой проблемой.
View user's profile Send private message Send Jabber-message Visit poster's website AIM Address MSN Messenger ICQ Number
PostPosted: Tue Nov 29, 2005 10:31 am Reply with quote
Δ
Разработчик
Разработчик
Joined: 12 Jan 2005
Posts: 783
Location: Москва




Roman wrote:
Использует ли этот парсер движек от Ms Internet Explorer или он полностью "самописный".

У TXMLDocument есть проперти "DOMVendor", указывающее на драйвер парсера... может принимать значения: MSXML(майкрософт), Xerces XML и Open XML.

Мы тут как-то проводили исследования на сгенеренном ХМЛ (около 8 Мб размером, порядка 100000 элементов), взяв 3 основных параметра:

1. Скорость открытия (время на установку Active в True), мс
MSXML - 1437
Open XML - 10032
Xerces XML - 24453

2. Скорость доступа к произвольному элементу, мс
Open XML - 313
Xerces XML - 343
MSXML - 133422 (sic!)

3. Объём отжираемой памяти (из них сама прога около 3Мб), Кб
MSXML - 73032
Xerces XML - 90544
Open XML - 129576
View user's profile Send private message Send Jabber-message
PostPosted: Tue Nov 29, 2005 11:14 pm Reply with quote
Lion
Разработчик
Разработчик
Joined: 10 Jan 2005
Posts: 699
Location: г. Волжский




Похоже что MSXML реально парсит XML только при первом доступе, интересно посмотреть время второего и более обращений.
View user's profile Send private message Send Jabber-message HabaHaba - Fast communicate ICQ Number
PostPosted: Wed Nov 30, 2005 12:37 pm Reply with quote
Δ
Разработчик
Разработчик
Joined: 12 Jan 2005
Posts: 783
Location: Москва




Lion wrote:
Похоже что MSXML реально парсит XML только при первом доступе, интересно посмотреть время второего и более обращений.


Сомневаюсь. Похоже что MSXML доступ к элементу (по имени) осуществляет прямым перебором всех элементов ==> скорость доступа к элементу зависит от его положения в документе.

Прочие-же парсеры, похоже, при загрузке производят сортировку и/или индексирование всех элементов.

Этим объясняется большее время загрузки и объём съедаемой памяти и весьма быстрый доступ к элемену по имени.
View user's profile Send private message Send Jabber-message
PostPosted: Wed Jan 17, 2007 3:39 pm Reply with quote
Arioch
Бывалый Жабовод
Бывалый Жабовод
Joined: 17 Jan 2007
Posts: 97




А они все DOM-парсеры ?
Вообще для бесконечного XMPP-потока кажется лучше бы подошёл SAX-парсер и вопрос о скорости вообще не встает, только про память.
Если Jajc так может.

PS: в Delphi 5 EE нет TXMLDocument, по крайней мере мне пока не попадался.

PPS: а можно протестировать TJvSimpleXML ? Он как по скорости/памяти? М.б. можно его доработать до поддержки Unicode (WideString-UCS-2 или UTF8String)?
View user's profile Send private message Send Jabber-message Visit poster's website
PostPosted: Wed Jan 17, 2007 9:45 pm Reply with quote
Lion
Разработчик
Разработчик
Joined: 10 Jan 2005
Posts: 699
Location: г. Волжский




Arioch wrote:
PPS: а можно протестировать TJvSimpleXML ? Он как по скорости/памяти? М.б. можно его доработать до поддержки Unicode (WideString-UCS-2 или UTF8String)?

Пытался - игра не стоит свеч. В JAJC вроде реализован самописный SAX.
View user's profile Send private message Send Jabber-message HabaHaba - Fast communicate ICQ Number
PostPosted: Wed Jan 17, 2007 11:31 pm Reply with quote
Δ
Разработчик
Разработчик
Joined: 12 Jan 2005
Posts: 783
Location: Москва




Lion wrote:
Пытался - игра не стоит свеч. В JAJC вроде реализован самописный SAX.

Тока он заточен под протокол.. и универсальностью не блещет
View user's profile Send private message Send Jabber-message
К вопросу о XML-парсерах.
JRuDevels Forum Index » Разработка и проектирование [Devel]
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
All times are GMT + 3 Hours  
Page 1 of 1  

  
  
 Post new topic  Reply to topic  


Powered by phpBB © 2001-2004 phpBB Group
phpBB Style by Vjacheslav Trushkin