Разбор XML с использованием конечных автоматов

Это хорошая практика для реализации разбора XML в конечный автомат? Если да, с какими основными штатами мы должны справиться?

1

Решение

Что ж, если вы пишете свой собственный парсер «с нуля» — тогда вам, вероятно, стоит сделать такой бутерброд:

  • текстовая строка
  • Обратные вызовы типа SAX
  • Код, который строит DOM на основе предыдущего уровня

Таким образом, уровень 1 может (и должен) быть выполнен в FSM, я бы сделал это с набором состояний, таких как Initial, InTagName, InAttrName, InAttrValue, InCDATA и т. Д. Их будет не так уж много, просто пара переключений страниц ,

Тем не менее, есть еще много работы на случай, если вам нужна правильная поддержка schema / namespace / xpath / etc.

Так почему бы просто не воспользоваться существующим решением?

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]