Skip to main content
 首页 » 编程设计

c#之正则表达式或 XML 解析器 C#

2024年01月13日36yxwkf

我有一些包含 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,那将是您的最佳解决方案。当然,有很多方法可以给这只猫剥皮。