如何删除XML文档中元素 c 的结束标记?
转换后的XML将通过模式验证,因为它内部有空格而被拒绝。我正在使用C#,.NET 1.1(我正在更新遗留应用程序:-()。
注意:我不能诉诸字符串操作来转换XML文档。
电流:
<main>
<a>
<b />
<c>
</c>
</a>
</main>
决赛:
<main>
<a>
<b />
<c />
</a>
</main>
更新1 :有关其他详细信息,最终的XML文档将另存为文件,然后另一个进程会验证该文件。看来保存的XML已格式化。
我不确定这是否属实:
<a></a> == <a />
答案 0 :(得分:5)
试试这个:
XmlDocument xml = new XmlDocument();
xml.LoadXml(@"
<main>
<a>
<b />
<c>
</c>
</a>
</main>");
foreach(XmlElement element in xml.SelectNodes("//*[. = '' and count(*) = 0]"))
{
element.IsEmpty = true;
}
Console.WriteLine(xml.InnerXml);
Console.ReadLine();
答案 1 :(得分:2)
也许将InnerText设置为null而不是string.Empty会有帮助吗?
<强>更新即可。或者只设置XmlElement.IsEmpty)