Есть ли лучшее регулярное выражение для синтаксического анализа DTD

StackOverflow https://stackoverflow.com/questions/1579288

  •  21-09-2019
  •  | 
  •  

Вопрос

У меня есть DTD для OFX 1.03 (их последняя версия, несмотря на то, что была разработана и выпущена 1.60, но я отвлекся ...)

Я хотел бы использовать регулярное выражение для создания групп, которые разделяют объект, элемент, другие теги на его части для дальнейшей обработки, так что я бы взял такой тег, как этот:

<!ENTITY % ACCTTOMACRO "(BANKACCTTO | CCACCTTO | INVACCTTO)">

И создайте объект, подобный этому

новый EntityTag { строковое имя = "%ACCTTOMACRO";string[] Дочерние типы = новая строка[] {"BANKACCTTO", "CCACCTTO", "INVACCTTO"}};

У меня есть регулярное выражение, которое выглядит примерно так:

Regex re = new Regex(@"<!(\b)+([\s\S])?[^>]+>");  

По общему признанию, я новичок в регулярных выражениях, поэтому до сих пор я неплохо справлялся с получением этого, что дает мне коллекцию совпадений по DTD для каждого тега без комментариев.

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

Если я нахожусь на совершенно неправильном пути, пожалуйста, проинструктируйте меня, однако, если вы все-таки скачаете этот документ, я думаю, вы можете счесть его нестандартным.(Visual Studio выдает несколько красных флажков из-за того, как отформатирован этот документ)

Я не ожидаю, что кто-то станет лезть на рожон, но для любопытных вот Ссылка чтобы загрузить спецификации.

Это было полезно?

Решение

Похоже, у них тоже есть доступная схема.Почему бы вместо этого не загрузить схему и не проанализировать ее с помощью анализатора XML (например, LINQ-to-XML)?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top