2010-03-22 25 views
2

我有类似这样的一些XML:linq to xml。读。并分配给ViewData..noob

<?xml version="1.0" encoding="utf-8" ?> 
<data> 
    <resources> 
     <resource key="Title">Alpha</resource> 
     <resource key="ImageName">Small.png</resource> 
     <resource key="Desc">blah</resource> 
</resources> 
</data> 

使用LINQ的XML我怎么可以在这里分配给每个资源的键值对与ViewData的集合。

谢谢。

回答

1
var doc = XDocument.Parse(documentString); 
foreach (var res in doc.Root.Descendants("resources")) { 
    ViewData[(string) res.Attribute("key")] = res.Value; 
} 

应该工作。

+0

谢谢,你的答案有帮助。尽管我使用了doc.Descendants,而不是doc.Root.Descendants – raklos 2010-03-22 17:27:22

1

假设你将xml文件加载到XDocument中,你可以迭代后代。这里有一个简单的例子,如果它来自一个字符串:

var doc = XDocument.Parse(docAsString); 
foreach (var resource in doc.Descendants("resource")) 
    ViewData[resource.Attribute("key").Value] = resource.Value;