使用xmlwriter在c#中编写一个空的XML元素
本文关键字:一个 元素 XML xmlwriter 使用 | 更新日期: 2023-09-27 18:10:53
我使用xmlwriter是为了编辑xml文件,但是我需要它维护一种特定的格式,以便将来与其他xml文件进行比较。
我使用下面的代码来编写空元素:
w.WriteStartElement("description");
w.WriteEndElement();
XML文件中的结果是:
<description />
通常是可以的,但我需要它看起来像这样:
<description/>
description后不加空格
有办法吗?
XML不是文本。规则是不同的。一般来说,不能使用文本比较来比较XML文件。您给出的两个示例是相同的XML,但是,正如您注意到的,它们是不同的文本。
你可以通过预处理要比较的文件来解决这个问题,比如把所有属性按相同的顺序排列,也许每行一个属性;通过将元素按规范顺序排列,对相同的名称空间使用相同的前缀,等等。然后你必须告诉你的文本比较工具忽略空白等
看XmlWriter.WriteRaw
,例如:
w.WriteRaw("<description/>");
这两种形式都是有效的XML,您使用的任何系统都应该能够解析这两种形式,以免不是 XML解析器。
我现在不在电脑旁,但我觉得这样可以:
Var myModifiedXmlString = w.ToString().Replace(" />", "/>");