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