Обновить

Комментарии 10

Паскаль жив. Но не на Хабре :)

Приглашаю отписаться в комментариях, кто ещё до сих пор программирует на Delphi или Free Pascal. Буду первым в этом списке :)

Только редкие поделки. По роду деятельности полностью ушёл в веб-разработку на PHP

До сих пор для себя пишу на нём

Смешной сайт! За авторством Embarcadero небось ))

Пишет-пишем) И для себя и в компаниях и для компаний)

SAX хорош для больших XML и в тех случаях когда вам нужно только прочитать документ и извлечь из него какие-то данные (причем, вам может интересовать далеко не все что есть в документе).

DOM хорош для небольших документов, особенно в ситуациях когда вам надо прочитать, внести изменения и сохранить обратно.

И тут как всегда - сначала вникаем в задачу, а потом подбираем под нее оптимальный инструмент. А не всегда используем только то, что когда-то уже использовали просто потому что оно знакомое.

При работе с SAX еще надо "в голове" держать контекст. Вот пример

      <Субъект>
        <ИдСубъекта>3569309339</ИдСубъекта>
        <УНС>IRi.003</УНС>
        <ТипСубъекта>
          <Идентификатор>2</Идентификатор>
          <Наименование>Физическое лицо</Наименование>
        </ТипСубъекта>
...

и в том же XML

            <Документ>
              <ТипДокумента>
                <Идентификатор>746140005</Идентификатор>
                <Наименование>PASSPORT</Наименование>
              </ТипДокумента>
              <Номер>6620505</Номер>
              <ОрганВыдачи>Iran (Islamic Republic of)</ОрганВыдачи>
            </Документ>
...

Тут мы видим что теги <Идентификатор> и <Наименование> могут быть как внутри тега <ТипСубъекта>, так и внутри тега <ТипДокумента>

В такой ситуации вам необходимо Устанавливать внутри какого внешнего тега вы находитесь чтобы правильно обработать тег внутренний. И это тоже ложится на вас.

До сих пор развиваю/поддерживаю свой же проект по автоматизации учета товаров. Для использования внутри фирмы. Уже лет 25.

FoxPro 2.5 -> Delphi 1 -> Delphi2 -> Delphi5 -> Delphi7 (и по сей день).

Новый софт для линукса начинаю писАть на Lazarus.

Недавно Арно Буше, автор фреймворка mORMot, объявил о релизе XML парсера
https://blog.synopse.info/?post/2026/08/07/A-2-GB/s-XML-Parser-for-Delphi-and-Free-Pascal%3A-SAX%2C-Streaming-and-DOM-Without-the-Usual-Trade-offs
FreePascal поддерживается. API SAX и DOM. Автор, в хорошем смысле, "повёрнут" на быстродействии своего кода, так что если интересует высокая скорость парсинга, можно попробовать.

Для Delphi есть отличный нативный XML парсер, который умеет "построчно" парсить.

https://github.com/neslib/Neslib.Xml

Думаю, не сложно адаптировать под FPC

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации