我有一个来自客户端的数据文件,并且没有正确解析你如何认为它是人类可读的。其中的标记是<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());
}
这占用了一半的处理时间!是否有更快或更好的方法来处理这个问题。
答案 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);