代码之家  ›  专栏  ›  技术社区  ›  Michael Paulukonis

如何用CR生成XML,而不是用XMLTextwriter中的CRLF

  •  3
  • Michael Paulukonis  · 技术社区  · 15 年前

    我正在通过xmlTextWriter生成XML。

    这个文件在我看来不错,验证了( at wc3 ,并被客户接受。

    但是客户机供应商抱怨行尾是CRLF,而不仅仅是CR。

    嗯,我在使用C_的win32机器上,而crlf是win32标准行的结尾。 是否有任何方法可以更改xmlTextWriter中的行尾?

    同样——行尾对一个合适的XML解析器来说不重要吗?

    参见: What are carriage return, linefeed, and form feed?

    注意:看起来唯一的答案是横向解决方案——您必须使用xmlWriter而不是xmlTextWriter

    4 回复  |  直到 14 年前
        1
  •  6
  •   Community CDub    8 年前

    当然,在问了一会儿之后,我在msdn上找到了一条线索(我通过谷歌找不到),指的是 XmlWriterSettings.NewLineChars

    然后我找到了不被接受的答案 SO: Writing XMLDocument to file with specific newline character (c#)

    这都是术语……

        2
  •  5
  •   btlog Stefan Wick MSFT    15 年前

    使用xmlWriterSettings将所需内容设置为行尾字符。

    XmlWriterSettings mySettings = new XmlWriterSettings();
    mySettings.NewLineChars = "\r";
    
    XmlWriter writer = XmlWriter.Create(
                             new StreamWriter(@"c:\temp\hello.xml", mySettings);
    

    我不知道行尾字符在哪里重要。我以前没碰过。

        3
  •  1
  •   Tomalak    15 年前

    对于正确实现的解析器来说,使用哪一行结束并不重要(请参见 the spec ,我引用(强调我的):

    为了简化应用程序的任务, XML处理器 必须表现得像 标准化所有换行符 在外部 分析的实体(包括 文件实体)输入时,在 解析,通过将 双字符序列xd xa和任意xd 后面不是xa到单个xa字符。

    因此,你应该对你现在拥有它的方式感到满意。您可能想问客户供应商实际上在那里做什么,很可能他们做错了。

        4
  •  0
  •   Bob Moore    15 年前

    使用xmlWriterSettings.newLineChars属性。

    推荐文章