C#,如何编写RegEx.Replace来替换xml元素的值
本文关键字:xml 替换 元素 Replace 何编写 RegEx | 更新日期: 2023-09-27 18:19:57
有一个xml字符串,目标是将xml元素值替换为固定字符串,即对于blah-blah-blah将其替换为固定值,我想使用RegEx.replace,而不是将字符串加载到DOM模型并进行替换。
有人能帮忙写这个正则表达式吗?本质上,目标是匹配元素标签"abc"中的所有内容
非常感谢!
本文告诉您需要了解的内容:XML不是正则的
忽略了他们问题的最明显的解决方案(即使用预先存在的XML解析器),他们认为应该使用正则表达式(简称regex)。现在他们有两个问题。
仅在正则语言上使用正则表达式
也就是说,有许多网站声称为编写XML正则表达式提供指导他们都错了。但它们是存在的,你可以使用它们,风险自负。
为了它的价值,不要。
正常处理XML,使用XmlDocument
、Xml.Linq
或XmlReader/Writer
,这就是它们的用途,涵盖了我们甚至无法想象的各种边缘情况,最重要的是,它们被证明是有效的。
请不要使用正则表达式。只是不要。
我的2美分。
让向下投票开始
Regular表达式用于正则语言。XML是一种非正则语言。因此,正则表达式不能用来正确地解析其中所写的任何内容。您需要使用一个真正的XML解析器来实现这一点,该解析器可以在C#中的许多库中找到。
正则表达式不适合处理标记。在其他缺陷中,如果元素可以嵌套,它们就不会起作用:
<abc> ... <abc> ... </abc> ... </abc>
他们也无法区分评论和不评论。
您需要一个真正的XML解析器。