读取 XML 文件并将数据转换为 DirectoryInfo 元素列表
Read an XML File and transform data into a list of DirectoryInfo elements
我目前正在尝试读取此格式的 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。
试试这个
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();
}
}
}
}
}
我目前正在尝试读取此格式的 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。
试试这个
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();
}
}
}
}
}