2010-03-22 66 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;