gpt4 book ai didi

c# - 使用匹配序列两次的正则表达式从 xml 中删除空元素

转载 作者:行者123 更新时间:2023-11-30 23:30:38 30 4
gpt4 key购买 nike

我希望从 XML 文件中删除空元素,因为读者需要一个值。这不是零 xsi:nil="true"或没有内容的元素 <Element /> Deserialize Xml with empty elements in C# .但是内部完全缺失的元素<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>

See demo at regex101

关于c# - 使用匹配序列两次的正则表达式从 xml 中删除空元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34901181/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com