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# 和 Visual Studio 2010 上编程。

谢谢 :)

4

1 回答 1

1

你可以从:

XElement root = XElement.Load(file);

使用根节点,您可以找到单词 children:

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,您需要将以下 using 添加到您的 csharp 文件中:

using System.Xml.XPath;

根据您的需要,显然还有其他技巧、方法和手段。祝你好运!

于 2012-07-19T16:02:01.470 回答