C# 如何读取文本文件并使用C将其解析为XML格式#
我有一个来自客户机的数据文件,它没有正确地解析,您认为它是人类可读的。其中的标签是C# 如何读取文本文件并使用C将其解析为XML格式#,c#,.net,xml,C#,.net,Xml,我有一个来自客户机的数据文件,它没有正确地解析,您认为它是人类可读的。其中的标签是标签,没有换行符。因此,它看起来像下面的示例: <statement><tag1></tag1><tag2></tag2>...and so on until </statement> <statement><tag1></tag1><tag2></tag2>...and so on
标签,没有换行符。因此,它看起来像下面的示例:
<statement><tag1></tag1><tag2></tag2>...and so on until </statement>
<statement><tag1></tag1><tag2></tag2>...and so on until </statement>
<statement><tag1></tag1><tag2></tag2>...and so on until </statement>
这占用了一半以上的处理时间!是否有更快或更好的方法来处理此问题。与其将行作为字符串读取并对其进行解析,不如立即将整个文档解析为(假设它是有效的XML文档): 或者,如果要包括根元素的标记:
var doc = XDocument.Load(fileName);
sr.WriteLine(doc.Root);
这就是我要找的。除了写“内存不足”时我仍然会遇到一个例外。文件太大了。比如256k@50+语句。我之前的做法是在每个foreach循环中编写IO过程。我只是认为有一种方法可以更快地解析文档并重新保存它。我看真的不远了。不过谢谢你。这是我一直在寻找的te方法和构造函数。我可以从这里开始搜索和阅读更多内容,并找到解决内存问题的方法。再次感谢。
foreach (String item in lines)
{
XElement xElement = XElement.Parse(item);
sr.WriteLine(xElement.ToString().Trim());
}
var doc = XDocument.Load(fileName);
foreach (var xElement in doc.Root.Elements())
{
sr.WriteLine(xElement.ToString().Trim());
}
var doc = XDocument.Load(fileName);
sr.WriteLine(doc.Root);