gpt4 book ai didi

.net - xmlreader 换行符\n 而不是\r\n

转载 作者:行者123 更新时间:2023-12-02 01:57:10 27 4
gpt4 key购买 nike

当我使用 XmlReader.ReadOuterXml() 时,元素由\n 而不是\r\n 分隔。因此,例如,如果我有 XmlDocument 表示

<A>
<B>
</B>
</A>

我明白了

<A>\n<B>\n</B>\n</A>

是否有指定换行符的选项? XmlWriterSettings 有它,但 XmlReader 似乎没有这个。

这是我读取 xml 的代码。请注意,XmlWriterSettings 默认情况下具有 NewLineHandling = Replace

XmlDocument xmlDocument = <Generate some XmlDocument>
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;

// Use a memory stream because it accepts UTF8 characters. If we use a
// string builder the XML will be UTF16.
using (MemoryStream memStream = new MemoryStream())
{
using (XmlWriter xmlWriter = XmlWriter.Create(memStream, settings))
{
xmlDocument.Save(xmlWriter);
}

//Set the pointer back to the beginning of the stream to be read
memStream.Position = 0;
using (XmlReader reader = XmlReader.Create(memStream))
{
reader.Read();
string header = reader.Value;
reader.MoveToContent();
return "<?xml " + header + " ?>" + Environment.NewLine + reader.ReadOuterXml();
}
}

最佳答案

XmlReader 会自动将 \r\n\ 规范化为 \n。尽管这在 Windows 上看起来不常见,但实际上是 XML 规范 ( http://www.w3.org/TR/2008/REC-xml-20081126/#sec-line-ends ) 所要求的。

您可以执行String.Replace:

string s = reader.ReadOuterXml().Replace("\n", "\r\n");

关于.net - xmlreader 换行符\n 而不是\r\n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1793908/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com