我希望从 XML 文件中删除空元素,因为读者需要一个值。这不是零 xsi:nil="true"
或没有内容的元素 <Element />
Deserialize Xml with empty elements in C# 。但是 Element 的内部部分根本缺失 <Element></Element>
我尝试编写自己的代码来删除这些元素,但我的代码太慢而且文件太大。每个项目的末尾也将包含此模式。因此以下正则表达式将删除有效的 xml:
@"<.*></*>
我需要某种正则表达式来确保两个 * 的模式相同。
所以:
<Item><One>1</One><Two></Two><Three>3</Three></Item>
会变成:
<Item><One>1</One><Three>3</Three></Item>
因此,事实上,它都是一行,这让事情变得更加困难,因为这意味着该项目的结尾正好在“三”的结尾之后,从而产生了我想要寻找的模式。
我无权访问允许重新创建有效 xml 的原始数据。
最佳答案
您想要capture一个或多个word characters里面<
... >
并使用 \1
匹配结束标记反向引用第一组捕获的内容。
<(\w+)></\1>
关于c# - 使用与序列匹配两次的正则表达式从 xml 中删除空元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34901181/