C# 使用LINQ将CSV转换为XML
任务是将CSV文件转换为XMLC# 使用LINQ将CSV转换为XML,c#,asp.net,xml,linq,C#,Asp.net,Xml,Linq,任务是将CSV文件转换为XML var x = from line in File.ReadAllLines(@"d:\sample.txt") where !line.StartsWith("#") && line.Length>0 let parts=line.Split(',') select new { XmlFile= new XElement("root",
var x = from line in File.ReadAllLines(@"d:\sample.txt")
where !line.StartsWith("#") && line.Length>0
let parts=line.Split(',')
select new
{
XmlFile= new XElement("root",
new XElement("ISBN",parts[0]),
new XElement("Title",parts[1])
)
};
问题
1)如何处理流(使用LINQ语句)
2) 如何将所选内容保存到“sample.xml”文件中
3) 如何将Xml文件绑定到GridView?(是否需要使用XmlDataSource?)
4) 使用Linq是否可以为我的XML创建XSD?(不使用XSD.exe)。1)执行文件.Close,因此不应出现流问题
2) 您需要将Linq查询放入您的XElement声明中,这样您就可以从中得到一个XElement,而不是一个IEnumerable的XElement(见下文)
3&4其他人可以回答……;)
(警告,以下代码未经测试):
1) 我认为您不需要显式地处理流。您检测到泄漏了吗?2) 与使用XMLFile属性创建对象(anon类型)不同,整理XML元素列表
...
select new XElement("root",
new XElement("ISBN",parts[0]),
new XElement("Title",parts[1])
)
现在,您可以通过编程创建XmlDocument或父XElement,将列表添加为子元素,并使用上述XML类上的成员函数将其保存到文件中
3) 数据绑定:查找。4) XSD也是XML。因此,没有理由不能以编程方式生成它。。虽然我从未试过。除非您正在考虑从步骤2中创建的xml文件自动生成模式。。在这种情况下,我不知道答案。。不确定是否有任何工具可以从规范的有效实现生成正确的格式规范
...
select new XElement("root",
new XElement("ISBN",parts[0]),
new XElement("Title",parts[1])
)