我有以下 xml,我想获取具有属性的节点的值。
<quiz xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="quiz.xsd">
<mchoice>
<question>What is the capital city of Australia?</question>
<answer>Sydney</answer>
<answer correct="yes">Canberra</answer>
<answer>Melbourne</answer>
<answer>Gold Coast</answer>
</mchoice>
<mchoice>
<question>Launceston is the second largest city in which Australian state?</question>
<answer>Victoria</answer>
<answer>New South Wales</answer>
<answer correct="yes">Tasmania</answer>
<answer>Western Australia</answer>
</mchoice>
</quiz>
public class Question
{
public string QuestionText { get; set; }
public List<string> Answers { get; set; }
public string CorrectAnswer { get; set; }
}
我尝试了以下查询,但在CorrectAnswer归档中我得到了空值
var questions = from docs in _doc.Descendants("mchoice")
let answers = _doc.Elements("answer")
select new Question
{
QuestionText = docs.Element("question").Value,
Answers = docs.Elements("answer").Select(a => a.Value).ToList(),
CorrectAnswer=docs.Elements("answer").Where(x=>x.Attribute("correct").Value=="yes").Select(x=>x)
例外输出
- QuestionText-澳大利亚的首都是哪里?
答案列表
CorrectAnswer-堪培拉