如何使用CR生成XML,而不是XMLTextWriter中的CRLF
-
26-09-2019 - |
题
我正在通过XMLTextWriter生成XML。
该文件对我的眼睛看起来不错,验证(在WC3),并被客户接受。
但是客户端供应商抱怨行端是CRLF,而不是CR。
好吧,我正在使用C#的Win32机器上,而CRLF是Win32标准线路终止。有什么方法可以更改XMLTextWriter中的线路端?
另外 - 线路端对适当的XML解析器不重要吗?
也可以看看: 什么是马车返回,finefeed和Form Feed?
注意:看起来唯一的答案是侧向解决方案 - 您必须使用XMLWriter而不是XMLTEXTWRITER
解决方案
当然,在询问之后,我找到了有关MSDN的线索(我找不到通过Google找到) xmlWriterSettings.NewlineChars
然后,这使我得到了未接受的答案 因此:编写xmldocument用特定的newline字符(c#)提交文件
一切都在术语中.....
其他提示
使用XMLWriterSettings将您想要的内容设置为线炭结尾。
XmlWriterSettings mySettings = new XmlWriterSettings();
mySettings.NewLineChars = "\r";
XmlWriter writer = XmlWriter.Create(
new StreamWriter(@"c:\temp\hello.xml", mySettings);
我不知道终点字符在哪里重要。我以前从未遇到过。
对于正确实施的解析器,使用了什么线结局无关紧要(请参阅 规格)我引用(强调我的):
为了简化应用程序的任务,XML处理器 必须表现得好像将所有线路休息归一化 在解析之前,通过翻译两字符序列#xd #xa和任何未随之而来的#xa的#xd,在外部解析实体(包括文档实体)中。
因此,您现在应该可以使用它的方式。您可能想问客户供应商实际在那里做什么,很可能他们做错了。
使用XMLWriterSettings.newlinechars属性。
不隶属于 StackOverflow