读取XML文件并将数据转换为DirectoryInfo元素列表

时间:2016-06-06 00:13:29

标签: c# xml xmlreader

我目前正在尝试读取此格式的XML文件以将其转换为列表,但是在注释中尝试代码会给我一个错误:这就是它在IE中的样子。显然,以后会有一个密切的资产标签和关闭属性

  <Properties>
- <Assets>
- <Asset Name="" Version="">
  <TestCase Name="" Version="" SubVersion="" /> 
  <TestCase Name="" Version="" SubVersion="" /> 
  <TestCase Name="" Version="" SubVersion="" /> 
  <TestCase Name="" Version="" SubVersion="" />  
  </Asset>

所以我这样做了:

XmlReader xReader = XmlReader.Create(new StringReader(xmlDoc));

其中xml doc = @"\\visreP01\REFERENCES\default.reference.versions\default.reference.versions.properties.xml"

我打算测试如何迭代名称版本等等,以便迭代地将它们放在列表中。但在阅读过程中,我得到的数据根级别是无效的第1行位置1.

1 个答案:

答案 0 :(得分:0)

试试这个

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Xml;
using System.Xml.Linq;

namespace ConsoleApplication1
{
    class Program
    {
        const string FILENAME = @"c:\temp\test.xml";
        static void Main(string[] args)
        {

            XmlReader xReader = XmlReader.Create(FILENAME);

            while(!xReader.EOF)
            {
                if (xReader.Name != "Asset")
                {
                    xReader.ReadToFollowing("Asset");
                }
                if (!xReader.EOF)
                {
                    XElement assets = (XElement)XElement.ReadFrom(xReader);
                    var results = assets.Elements("TestCase").Select(x => new
                    {
                        name = (string)x.Attribute("Name"),
                        version = (string)x.Attribute("Version"),
                        subVersion = (string)x.Attribute("SubVersion")
                    }).ToList();


                 }
            }
        }
    }
}