我有一些包含 xml 标签和纯文本的 word 模板 (dot/dotx) 文件。
在运行时,我需要用它们各自的邮件合并字段替换 xml 标记。
因此,需要为这些xml 标记解析文档并用合并字段替换它们。 我正在使用 Regex 查找和替换这些 xml 标签。但有人建议我使用 XML 解析器来解析 XML 标记 ([ Regex for string enclosed in <*>, C# )。
示例文档如下所示:
Solicitor Letter
<Tfirm/>
<Tbuilding/>
<TstreetNumber/> <TstreetName/>
For the attention of: <TContact1/> <TEmail/>
Dear <TContact1/>
RE: <Pbuilding/> <PstreetNumber/> <PstreetName/> <Pvillage/> <PTown/>
We were pleased to hear that contracts have now been exchanged in the sale of the
above property on behalf of our mutual client/s. We now have pleasure in enclosing a
copy of our invoice for your kind attention upon completion.
....
请注意,尖括号由最终用户在模板中手动键入。
我尝试使用 XMLReader,但出现错误,因为我的文档本身没有根标签。
请指导我是否应该坚持使用正则表达式,或者有什么方法可以使用 XML 解析器。
谢谢!
请您参考如下方法:
除非您可以将其结构化为 XML 文档,否则 .NET 库中用于读取 XML 的工具将完全无用。
您拥有的不是 XML。拥有一两个符合 XML 标准的标记并不是 XML 文档的组成部分。问题在于它根本不遵循 XML 的任何规则。
这个故事的寓意是你必须想出你自己的方法来解析它。如果您喜欢喝 RegEx kool-aid,那将是您的最佳解决方案。当然,有很多方法可以给这只猫剥皮。
