анализ и разбор xml файла
Добавлено: 04 май 2008, 14:26
Дан xml фай, надо сделать разборку xml файла. Всю задачу рассказывать не буду, потому как с частью уже справился.
Собственно реализовал через конечные автоматы. Интересует вот одна ситуация:
Проблема возникает при "неправильной" вложенности тегов.
Предположим если при ситуации когда имя тега у меня не имело бы значение:
1) < > < > ...... </ ></ >
парсер бы выдавал ОК.
но при:
2) <a> <b> .....</a> </b> - абсурд, но парсер этого не увидит.
он тоже выдаст ОК, поскольку алгоритм реализованный через конечный автомат считывает по 1 символу и не обладает памятью.
Как реализовать запоминание имени открывающего тега и помещения его в стек (для последующего сравнения с закрывающим тегов) ?
Нужен совет "как лучше сделать". Или ссылки на полезные материалы с подобными проблемами.
Имеет ли смысл, когда обнаруживается открывающий тег, и следующее состоянии после него не является "/" то посимвольно считывать имя тега в буфферную строку, эту строку в стек, освобожать память буфферной строки и т.д. ?
Собственно реализовал через конечные автоматы. Интересует вот одна ситуация:
Проблема возникает при "неправильной" вложенности тегов.
Предположим если при ситуации когда имя тега у меня не имело бы значение:
1) < > < > ...... </ ></ >
парсер бы выдавал ОК.
но при:
2) <a> <b> .....</a> </b> - абсурд, но парсер этого не увидит.
он тоже выдаст ОК, поскольку алгоритм реализованный через конечный автомат считывает по 1 символу и не обладает памятью.
Как реализовать запоминание имени открывающего тега и помещения его в стек (для последующего сравнения с закрывающим тегов) ?
Нужен совет "как лучше сделать". Или ссылки на полезные материалы с подобными проблемами.
Имеет ли смысл, когда обнаруживается открывающий тег, и следующее состоянии после него не является "/" то посимвольно считывать имя тега в буфферную строку, эту строку в стек, освобожать память буфферной строки и т.д. ?