Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何读取文本文件并使用C将其解析为XML格式#_C#_.net_Xml - Fatal编程技术网

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);