|
|
|
Что быстрее ....
|
|||
|---|---|---|---|
|
#18+
Добрый день, Подскажите пожалуйста насколько быстро будет работать трансформация файла xml(размером 5 мб) в код пхп? Или лучше использовать xpath что бы извлекать параметры, которые мне нужны, сразу же в код пхп и обрабатывать их? Насколько быстро справлается xslt с обработкой больших файлов xml(>10 мб)? Заранее вам благодарен. -- Cordialement Victor Bartel ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2006, 12:18 |
|
||
|
Что быстрее ....
|
|||
|---|---|---|---|
|
#18+
Так вижу что мой вопрос, вызвал затрудение у публики :). Перефразирую его, насколько быстра трансформация xslt, строится ли в памяти дерево всего xml документа при трансформаци? Или же трансформация выполняется в одном направлении пробегая документ сверху вниз? Насколько оптимально исползовать xslt с огромными файлами xml? Или более оптимально использовать sax-подобные парсеры для громозких xml файлов. Заранее вам благодарен. -- Cordialement Victor Bartel ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2006, 13:44 |
|
||
|
Что быстрее ....
|
|||
|---|---|---|---|
|
#18+
с обработкой файлов справляется не хслт а парсер. Микрософтовский наиболее быстрый вроде (тесты где-то видел). На обычной машине трансормация 6 мб-ного файла шла где-то 20 мин. Т.е. хмл трансформировать через хсл шаблон в другой формат. Это неприемлимо для большинства систем. В результате делал разбор через SAX без хслт, отрабатывает за несколько секунд но всю обработку писал в коде на васике ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2006, 14:02 |
|
||
|
Что быстрее ....
|
|||
|---|---|---|---|
|
#18+
Спасибо, вы подтвердили мои сомнения, что ж придется использовать SAX для php и XmlReader для .NET ... -- Cordialement Victor Bartel ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2006, 14:18 |
|
||
|
Что быстрее ....
|
|||
|---|---|---|---|
|
#18+
Перефразирую его, насколько быстра трансформация xslt, строится ли в памяти дерево всего xml документа при трансформаци? Это зависит от типа парсера XML, используемого трансформатором (SAX или DOM). Обычно используется SAX , тогда дерево НЕ строится в памяти. Или же трансформация выполняется в одном направлении пробегая документ сверху вниз? Если SAX , то да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 11:09 |
|
||
|
Что быстрее ....
|
|||
|---|---|---|---|
|
#18+
если sax то не получится использовать хсл. Тогда проще в текстовом файле всё хранить а не в хмл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 12:05 |
|
||
|
Что быстрее ....
|
|||
|---|---|---|---|
|
#18+
Про php не знаю, к сожалению, но java XSLT-Processor'ы (Xalan, Saxon) не парсят xml в DOM при трансформации, соответственно указанные объемы могут перелопатить довольно быстро (тут больше, на мой взгляд, зависит собственно от xsl-преобразования, т.е. оно само по себе может быть написано неэффективно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 15:17 |
|
||
|
Что быстрее ....
|
|||
|---|---|---|---|
|
#18+
и саксон и ксалан судя по документации парсят в дом. SAX это Simple API for XML, по сути просто считывание файла сверху вниз и вызывание пользовательской функции на каждый нод/атрибут. Никакого хсл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 15:52 |
|
||
|
Что быстрее ....
|
|||
|---|---|---|---|
|
#18+
1024и саксон и ксалан судя по документации парсят в дом. Наличие класса Код: plaintext Вот еще цитатка из документации на Saxon (старый, правда) The SAXON API: comparison with SAX and DOM There are two standard APIs for processing XML documents: the SAX interface, and the DOM. SAX (see http://www.megginson.com/SAX/index.html) is an event-driven interface in which the parser reports things such as start and end tags to the application as they are encountered, while the Document Object Model (DOM) (see http://www.w3.org/dom is a navigational interface in which the application can roam over the document in memory by following relationships between its nodes. Another API, JDOM, is similar in concept to DOM but provides a lighter-weight API that is more closely integrated with the standard Java 2 classes. SAXON offers a higher-level processing model than either SAX or DOM. It allows applications to be written using a rule-based design pattern, in which your application consists of a set of rules of the form "when this condition is encountered, do this processing". It is an event-condition-action model in which the events are the syntactic constructs of XML, the conditions are XSLT-compatible patterns, and the actions are Java methods. Further, the action taken when these rules are fired may include evaaluation of XPath expressions, providing a higher-level access mechanism than raw navigation of the tree. If you are familiar with SAX, some of the differences in SAXON are: You can provide a separate handler for each element type (or other node), making your application more modular SAXON supplies context information to your application, so you can find out, for example, the parent element of the one you are currently processing SAXON provides facilities for organizing the output of your application, allowing you to direct different parts of the output to different files. SAXON is a particularly convenient tool for splitting a large document into page-sized chunks for viewing, or into individual records for storing in a relational or object database. SAXON allows you to register your preferred SAX-compliant XML parser; you do not need to hard-code the name of the parser into your application or supply it each time on the command line. SAXON also works with several DOM implementations. SAXON extends the SAX InputSource class allowing you to specify a file name as the source of input. 1024 SAX это Simple API for XML, по сути просто считывание файла сверху вниз и вызывание пользовательской функции на каждый нод/атрибут. Никакого хсл Спасибо, я тоже знаю, что 2*2=4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 16:37 |
|
||
|
|

start [/forum/topic.php?fid=14&msg=33751901&tid=1334778]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
159ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 227ms |
| total: | 501ms |

| 0 / 0 |
