0

アイテムを編集して変更を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値を変更し、categoryName値を変更し、値を追加します。

誰かがリストを作成する方法について何か提案がありますか?どのコンポーネントを使用できますか?

C#およびVisualStudio2010でのimプログラミング。

ありがとう :)

4

1 に答える 1

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]inはをXPathSelectElement意味し.Descendants("words") that has a child wordます。を使用XPathSelectElementするには、csharpファイルに次のusingを追加する必要があります。

using System.Xml.XPath;

あなたのニーズに応じて、明らかに他のトリック、方法、手段があります。幸運を!

于 2012-07-19T16:02:01.470 に答える