如何读取文本文件并使用C#将其明显解析为XML格式

时间:2014-08-22 15:31:39

标签: c# .net xml

我有一个来自客户端的数据文件,并且没有正确解析你如何认为它是人类可读的。其中的标记是<statement>标记,并且没有换行符。所以它看起来像下面的例子:

<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文档,如下所示:

<statement>
     <tag1></tag1>
     <tag2>
        <Tag2A></tag2A>
     </tag2>
</statement>

提前致谢。我是使用XML的新手,因此需要学习它的工具。目前,我正在按行File.ReadLines读取该文件,然后循环执行XML Parse(),如下所示:

foreach (String item in lines)
{
    XElement xElement = XElement.Parse(item);
    sr.WriteLine(xElement.ToString().Trim());
}

这占用了一半的处理时间!是否有更快或更好的方法来处理这个问题。

1 个答案:

答案 0 :(得分:1)

不是将行作为字符串读取并解析它们,而是以XDocument(假设它是有效的XML文档)一次解析整个文档可能更好:

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