1

我正在使用 xmlwriter 来编辑 xml 文件,但我需要它来维护特定的格式,以便将来与其他 xml 文件进行比较。

我正在使用以下代码编写空元素:

w.WriteStartElement("description");
w.WriteEndElement();

xml文件中的结果是:

<description />

这通常会没问题,但我需要它看起来像这样:

<description/>

“描述”后没有空格字符。

有什么办法吗?

4

3 回答 3

3

XML 不是文本。规则不同。通常,您不能使用文本比较来比较 XML 文件。您给出的两个示例是相同的 XML,但正如您所指出的,它们是不同的文本。

您可以通过预处理要比较的文件来解决此问题,例如将所有属性按相同顺序排列,也许每行一个属性;通过将元素按规范顺序放置,对相同的命名空间使用相同的前缀等。然后您必须告诉您的文本比较工具忽略空格等。

于 2011-10-11T14:51:31.080 回答
2

这两种形式都是有效的 XML,并且您使用的任何系统都应该能够解析这两种形式,以免它不是XML 解析器。

我现在不在电脑前,但我觉得这样可以:

Var myModifiedXmlString = w.ToString().Replace(" />", "/>");
于 2011-10-11T14:46:46.907 回答
2

XmlWriter.WriteRaw,例如:

w.WriteRaw("<description/>");
于 2011-10-11T15:00:02.580 回答