【发布时间】:2010-10-01 16:38:45
【问题描述】:
我正在编写一些处理记录 xml 数据的代码,并且我希望能够替换文档中某些元素(例如密码)的内容。我宁愿不序列化和解析文档,因为我的代码将处理各种模式。
输入文档示例:
文档#1:
<user>
<userid>jsmith</userid>
<password>myPword</password>
</user>
文档#2:
<secinfo>
<ns:username>jsmith</ns:username>
<ns:password>myPword</ns:password>
</secinfo>
我希望我的输出是什么:
输出文档#1:
<user>
<userid>jsmith</userid>
<password>XXXXX</password>
</user>
输出文档#2:
<secinfo>
<ns:username>jsmith</ns:username>
<ns:password>XXXXX</ns:password>
</secinfo>
由于我将要处理的文档可能有多种模式,我希望提出一个很好的通用正则表达式解决方案,可以找到其中包含密码的元素并相应地屏蔽内容。
我可以使用正则表达式和 C# 解决这个问题,还是有更有效的方法?
【问题讨论】:
-
当有许多其他优秀的工具可以做你想做的事情时,我当然会避免使用正则表达式。
-
即使正则表达式能够(它们不能)具有多种模式,也使得更有必要使用某种形式的解析器而不是更少。