LINQ to XML嵌套元素查询 [英] LINQ to XML nested elements query
本文介绍了LINQ to XML嵌套元素查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下Questions.xml文件
I have the following Questions.xml file
<?xml version="1.0" encoding="utf-8" ?>
<Questions>
<Question>
<Subject>ADO.NET</Subject>
<Text>Which class should you use to manage multiple tables and relationships among them?</Text>
<Answers>
<Answer>DataRow</Answer>
<Answer>DataView</Answer>
<Answer>DataTable</Answer>
<Answer>DataSet</Answer>
</Answers>
</Question>
</Questions>
我要解析的
.以下是我的课程和查询.
which I want to parse. Below are my classes and my query.
public class Question
{
public string Text { get; set; }
public string Subject { get; set; }
public virtual List<Answer> Answers { get; set; }
}
public class Answer
{
public string Text { get; set; }
}
static void readQuestions()
{
var questions = from question in XDocument.Load("Questions.xml").Descendants("Questions").Elements("Question")
select new Question
{
Subject = (string)question.Element("Subject"),
Text = (string)question.Element("Text"),
Answers = new List<Answer>(
from answers in question.Elements("Answers").Elements("Answer")
select new Answer
{
Text = (string)answers.Element("Answer")
})
};
foreach (var question in questions)
{
Console.WriteLine("Subject: {0}\n Text: {1}", question.Subject, question.Text);
foreach (var answer in question.Answers)
Console.WriteLine("Answer: {0}", answer.Text);
}
}
问题是它没有打印答案文本.我搜索了不同的嵌套linq to xml查询示例,但找不到我的问题所在.非常感谢.
The problem is it prints no Text for Answers. I searched for different nested linq to xml query examples but I can't find what's wrong with mine. Many thanks.
推荐答案
只需更改此内容:
XDocument.Load("Questions.xml").Descendants("Questions").Elements("Question")
收件人:
XDocument.Load("Questions.xml").Descendants("Question")
或者:
XDocument.Load("Questions.xml").Root.Elements("Question")
还更改您的答案查询:
from answers in question.Element("Answers").Elements("Answer")
select new Answer
{
Text = (string)answers
})
这篇关于LINQ to XML嵌套元素查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文