【发布时间】:2011-12-05 10:58:31
【问题描述】:
我在网上寻找如何保留 XML 数据的回车,但我找不到答案,所以我在这里 :)
目标是在文件中写入 XML 数据的内容。因此,如果节点的值包含一些“\r\n”数据,软件需要将它们写入文件以创建新行,但它不写入,即使有空格:保留。
这是我的测试类:
XElement xRootNode = new XElement("DOCS");
XElement xData = null;
//XNamespace ns = XNamespace.Xml;
//XAttribute spacePreserve = new XAttribute(ns+"space", "preserve");
//xRootNode.Add(spacePreserve);
xData = new XElement("DOC");
xData.Add(new XAttribute("FILENAME", "c:\\titi\\prout.txt"));
xData.Add(new XAttribute("MODE", "APPEND"));
xData.Add("Hi my name is Baptiste\r\nI'm a lazy boy");
xRootNode.Add(xData);
bool result = Tools.writeToFile(xRootNode.ToString());
这是我的流程类:
try
{
XElement xRootNode = XElement.Parse(xmlInputFiles);
String filename = xRootNode.Element(xNodeDoc).Attribute(xAttributeFilename).Value.ToString();
Boolean mode = false;
try
{
mode = xRootNode.Element(xNodeDoc).Attribute(xWriteMode).Value.ToString().ToUpper().Equals(xWriteModeAppend);
}
catch (Exception e)
{
mode = false;
}
String value = xRootNode.Element(xNodeDoc).Value;
StreamWriter destFile = new StreamWriter(filename, mode, System.Text.Encoding.Unicode);
destFile.Write(value);
destFile.Close();
return true;
}
catch (Exception e)
{
return false;
}
有人有想法吗?
【问题讨论】:
-
您应该将这些数据放入 因为 XML 会尝试解析它们。
-
它的工作是 xml 解析器将不同的换行符标准化为 \n。所以这是默认行为。
标签: c# xml linq c#-4.0 linq-to-xml