我遇到了一些问题。我试图解析一个XML文件,并将其内容放入TreeView中。我得到了一切工作,但我遇到了一件事。将数据从XML文件拖入TreeView项目(C#)
下面是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>
我使用的prase 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)放在树视图中,而我不想那样做。
此代码运行良好,非常感谢! – septor
我还有一个问题。 couldbe属性内部的格式会丢失,例如,当我将节点数据插入到richtextbox中时,将换行。我怎样才能防止这一点?我已经看过LoadOptions,并且这些似乎都没有成功。我还玩弄解析Environment.NewLine和“/ n”,但没有运气。 – septor