我正在通过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属性。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top