如何在C#,.NET 1.1中删除XmlDocument的结束标记?

时间:2010-01-21 08:49:55

标签: c# xml .net-1.1 xmldocument

如何删除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 />

2 个答案:

答案 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)