凭借我有限的C#编程经验,我一直在研究如何读取过去4天的XML文件而没有运气......我需要帮助。
我知道有XMLReader,XDocument以及与LINQ有关的内容,它允许您读取XML文件。
我只有使用streamreader的经验,所以如果所有其他都失败了我想我将需要使用它构建我自己的XML阅读器。
关于我的XML文件的结构,它有一个标签,用一系列包含许多子节点的其他标签来包含所有内容。
不知道该做什么和想法不足。
谢谢
最简单的方法是使用XDocument
。例如:
<myroot>
<somesub>1</somesub>
<somesub>2</somesub>
<somesub>3 <b>- or -</b> 4</somesub>
</myroot>
然后:
string path = @"myfile.xml";
var doc = XDocument.Load(path);
// Get the root node <myroot>
var root = doc.Root;
// Loop through the children and print each one's value:
foreach(var child in root.Elements())
{
Console.WriteLine(child.Value);
}
您可以使用XmlTextReader。
using (XmlTextReader xmlTextReader = new XmlTextReader("FILE_NAME.xml"))
{
while (xmlTextReader.Read())
{
switch (xmlTextReader.NodeType)
{
// ... Process node types here ex. XmlNodeType.Element
}
}
}
阅读更多:http://msdn.microsoft.com/en-us/library/system.xml.xmltextreader.aspx
但是XmlTextReader不验证数据,因此如果要验证数据,请使用XmlReader:http://msdn.microsoft.com/en-us/library/system.xml.xmlreader.aspx
所有这些用于读取和解析XML的类都有不同的用途。
使用XDocument
(LINQ风格)会产生更加可读的代码片段,但会消耗比XmlTextReader
更多的内存。
如果您正在处理大型文件,请使用XmlReader类。
XDocument examples on dotnetcurry
我个人从来没有喜欢过XmlDocument类,因为如果强迫我编写代码那么冗长的代码。这就是我。