0

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

2 回答 2

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();
于 2010-01-21T09:06:30.710 回答
3

也许将 InnerText 设置为 null 而不是 string.Empty 会有所帮助吗?

更新。或者只是设置 XmlElement.IsEmpty )

于 2010-01-21T08:54:13.657 回答