我有点问题。我正在尝试解析 XML 文件并将其内容放入 TreeView。我的一切工作正常,但我有一件事有问题。
以下是 XML 文件的示例:
<AnswerIt>
<category name="Category 1">
<question is="Question 1">
<answer couldbe="Answer 1" />
<answer couldbe="Answer 2" />
</question>
</category>
<category name="Category 2">
<question is="Question 1">
<answer couldbe="Answer 1" />
</question>
<question is="Question 2">
<answer couldbe="Answer 1" />
</question>
</category>
</AnswerIt>
我用来赞美 XML 文件的代码可以很好地提取所有类别。当它到达问题部分时,它会提出第一个问题,但之后没有问题。所有答案都可以很好地提取(只要它们属于第一个问题)。这是我的 C# 代码:
public void LoadQuestionDatabase()
{
XmlTextReader reader = new XmlTextReader("http://localhost/AnswerIt.xml");
TreeNode node = new TreeNode();
TreeNode subnode = new TreeNode();
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element && reader.Name == "category")
{
node = lstQuestions.Nodes.Add(reader.GetAttribute(0));
categories.Add(reader.GetAttribute(0));
while (reader.NodeType != XmlNodeType.EndElement)
{
reader.Read();
if (reader.Name == "question")
{
subnode = node.Nodes.Add(reader.GetAttribute(0));
questions.Add(reader.GetAttribute(0));
while (reader.NodeType != XmlNodeType.EndElement)
{
reader.Read();
if (reader.Name == "answer")
{
// add each answer
subnode.Nodes.Add(reader.GetAttribute(0).Replace("\t", ""));
}
}
}
}
}
}
reader.Close();
}
我不太擅长 C#,我猜测它不会循环遍历所有问题并添加它们。任何想法我做错了什么?我可以在任何地方阅读以帮助我吗?我阅读的每个示例都将根节点 (AnswerIt) 放在树视图中,我不希望这样。