我正在寻找一种可以有效地从 XML 中删除空标记的好方法。您有什么推荐的吗?正则表达式? X文档? XML文本阅读器?
例如,
const string original =
@"<?xml version=""1.0"" encoding=""utf-16""?>
<pet>
<cat>Tom</cat>
<pig />
<dog>Puppy</dog>
<snake></snake>
<elephant>
<africanElephant></africanElephant>
<asianElephant>Biggy</asianElephant>
</elephant>
<tiger>
<tigerWoods></tigerWoods>
<americanTiger></americanTiger>
</tiger>
</pet>";
可能变成:
const string expected =
@"<?xml version=""1.0"" encoding=""utf-16""?>
<pet>
<cat>Tom</cat>
<dog>Puppy</dog>
<elephant>
<asianElephant>Biggy</asianElephant>
</elephant>
</pet>";
最佳答案
将原始文件加载到 XDocument
中并使用以下代码提供所需的输出:
var document = XDocument.Parse(original);
document.Descendants()
.Where(e => e.IsEmpty || String.IsNullOrWhiteSpace(e.Value))
.Remove();
关于c# - 移除空的 XML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7318408/