是否有更好的正则表达式来解析DTD

时间:2009-10-16 17:14:44

标签: c# regex grouping dtd ofx

我已经获得了OFX 1.03的DTD(他们的最新版本尽管已经开发并发布了1.60,但我离题了......)

我想使用正则表达式将组实体,元素,其他标签拆分为其部分以进行进一步处理,以便我采用这样的标记:

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

并创建一个像这样的对象

new EntityTag {string Name =“%ACCTTOMACRO”; string [] ChildTypes = new string [] {“BANKACCTTO”,“CCACCTTO”,“INVACCTTO”}};

我有一个看起来像这样的正则表达式:

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

不可否认,我是regex的新手,所以到目前为止我做得很好,这给了我一个DTD的匹配集,每个标签没有评论。

我想利用分组来促进前面提到的对象的创建。

如果我走的是完全错误的道路,请指导我,但是如果您下载此文档,我认为您可能会发现它不符合标准。 (Visual Studio按照格式化文档的方式抛出了一些红色标志)

我不指望有人会遇到麻烦,但好奇的是link下载规格。

1 个答案:

答案 0 :(得分:2)

看起来他们也有架构可用。为什么不下载模式而使用XML解析器解析它(例如,LINQ-to-XML)?