我正在使用 xmlwriter 来编辑 xml 文件,但我需要它来维护特定的格式,以便将来与其他 xml 文件进行比较。
我正在使用以下代码编写空元素:
w.WriteStartElement("description");
w.WriteEndElement();
xml文件中的结果是:
<description />
这通常会没问题,但我需要它看起来像这样:
<description/>
“描述”后没有空格字符。
有什么办法吗?
我正在使用 xmlwriter 来编辑 xml 文件,但我需要它来维护特定的格式,以便将来与其他 xml 文件进行比较。
我正在使用以下代码编写空元素:
w.WriteStartElement("description");
w.WriteEndElement();
xml文件中的结果是:
<description />
这通常会没问题,但我需要它看起来像这样:
<description/>
“描述”后没有空格字符。
有什么办法吗?
XML 不是文本。规则不同。通常,您不能使用文本比较来比较 XML 文件。您给出的两个示例是相同的 XML,但正如您所指出的,它们是不同的文本。
您可以通过预处理要比较的文件来解决此问题,例如将所有属性按相同顺序排列,也许每行一个属性;通过将元素按规范顺序放置,对相同的命名空间使用相同的前缀等。然后您必须告诉您的文本比较工具忽略空格等。
这两种形式都是有效的 XML,并且您使用的任何系统都应该能够解析这两种形式,以免它不是XML 解析器。
我现在不在电脑前,但我觉得这样可以:
Var myModifiedXmlString = w.ToString().Replace(" />", "/>");
看XmlWriter.WriteRaw
,例如:
w.WriteRaw("<description/>");