2012-07-19 51 views
0

即時通訊尋找一種方法來從我的XML加載數據列表,我可以編輯項目,然後加載更改回到XML文件;將xml節點加載到可以編輯的列表?

<game id="1" name="animals" instruction=" instruction here "> 
<words> 
    <word wordName="Weasel" categoryCode="1" categoryName="Mammals" /> 
    <word wordName="Dog" categoryCode="1" categoryName="Mammals" /> 
    <word wordName="Cat" categoryCode="1" categoryName="Mammals" /> 
    <word wordName="Snake" categoryCode="2" categoryName="Reptiles" /> 
    <word wordName="Chameleon" categoryCode="2" categoryName="Reptiles" /> 
    <word wordName="agama" categoryCode="2" categoryName="Reptiles" /> 
    <word wordName="Chicken" categoryCode="3" categoryName="Birds" /> 
    <word wordName="Peacock" categoryCode="3" categoryName="Birds" /> 
    <word wordName="Pigeon" categoryCode="3" categoryName="Birds" /> 
</words>` 

例如:然後我載入我的網頁,將有5名列表,(其中2個將在此刻空),另3將是「哺乳動物」,「爬行動物」和「鳥」 。在這些列表中的每一個下面都會列出其他列表中的所有項目。在哺乳動物下:黃鼠狼,​​狗,貓等。

即時尋找一種方式,讓我的用戶改變一切,增加2個節點(有沒有額外的空列表),改變wordName值,改變類別名稱值,增加更多的價值等等

任何人都有關於如何製作該列表的建議?我可以使用哪個組件?

在C#和Visual Studio 2010中

感謝IM編程:)

+2

http://msdn.microsoft.com/library/182eeyhh%28v=vs.100%29.aspx將是一個好開始! – 2012-07-19 12:12:57

回答

1

你可以這樣開始:

XElement root = XElement.Load(file); 

根節點,然後你可以找到這個詞孩子:

IEnumerable<XElement> wordList = root.Decendants("word"); 

然後循環遍歷wordList視圖每個XElement word來獲取數據(這裏和其他地方有很多例子,只是搜索它)。您可以使用其.Add()方法將更多內容添加到任何XElement。如果你想將其添加到"words"元素,你可以搜索具有:

XElement words = root.Element("words"); // if it is a first rank child or 
XElement words = root.XPathSelectElement("//words[word]"); // if it is burried deeper 

//words[word]XPathSelectElement意味着.Descendants("words") that has a child word。要使用XPathSelectElement需要以下使用添加到您的CSharp文件:

using System.Xml.XPath; 

顯然還有其他的技巧,方式,根據您的需要指。祝你好運!