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

发布于 2024-08-19 00:52:56 字数 592 浏览 7 评论 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 />

How can I remove the closing tag of element c in a XML document?

The converted XML will go through a schema validation and it is rejected because it has a whitespace within. I'm using C#, .NET 1.1 (I'm updating a legacy application :-( ).

Note: I must not resort to string manipulation to convert the XML document.

Current:

<main>
  <a>
    <b />
    <c>
    </c>
  </a>
</main>

Final:

<main>
  <a>
    <b />
    <c />
  </a>
</main>

Update 1: for additional details, the final XML document is saved as file, and then another process validates the file. It appears that the saved XML is formatted.

I'm not sure if this is true:

<a></a> == <a />

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

翻了热茶 2024-08-26 00:52:56

试试这个:

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();

Try this:

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();
匿名的好友 2024-08-26 00:52:56

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

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

Maybe setting InnerText to null instead of string.Empty would help?

Update. Or just set XmlElement.IsEmpty )

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文