我目前正在尝试读取此格式的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.
答案 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();
}
}
}
}
}