嗨,我想尝试将xml文件中的属性添加到列表数据结构中。但是我没有想法如何做...我试图创建一个类,但是我不知道如何在列表中实现我的查询。这是我的代码:
{
user_id:1;
item_count:2;
grand_total:20;
}
xml文件:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Xml.Linq;
namespace Lista
{
class Program
{
List<QuestionList> test = new List<QuestionList>();
static void Main(string[] args)
{
var xml = XDocument.Load("questions.xml");
var query = from index in xml.Descendants("question")
where (string)index.Attribute("TypeQuestion") == "eazy"
select index;
foreach(var x in query)
{
Console.WriteLine($"{x}");
}
}
class QuestionList
{
public string QuestionName;
public string answers;
public string rightIndex;
public string TypeQuestion;
}
}
}
如果我尝试:
<QuestionsList>
<question>
<name>Question 1</name>
<answers>a1,a2,a3,a4</answers>
<rightIndex>3</rightIndex>
<TypeQuestion>eazy</TypeQuestion>
</question>
<question>
<name>Question 2</name>
<answers>a1,a2,a3,a4</answers>
<rightIndex>3,4</rightIndex>
<TypeQuestion>eazy</TypeQuestion>
</question>
<question>
<name>Question 3</name>
<answers>a1,a2,a3,a4</answers>
<rightIndex>1</rightIndex>
<TypeQuestion>eazy</TypeQuestion>
</question>
<question>
<name>Question 4</name>
<answers>a1,a2,a3,a4</answers>
<rightIndex>2</rightIndex>
<TypeQuestion>mediu</TypeQuestion>
</question>
<question>
<name>Question 5</name>
<answers>a1,a2,a3,a4</answers>
<rightIndex>2,4</rightIndex>
<TypeQuestion>mediu</TypeQuestion>
</question>
<question>
<name>Question 6</name>
<answers>a1,a2,a3,a4,a5</answers>
<rightIndex>5</rightIndex>
<TypeQuestion>mediu</TypeQuestion>
</question>
<question>
<name>Question 7</name>
<answers>a1,a2</answers>
<rightIndex>1</rightIndex>
<TypeQuestion>mediu</TypeQuestion>
</question>
</QuestionsList>
我得到了内容,但是如果我尝试选择所有问题,TypeQuestion的“ eazy”如何不起作用。
答案 0 :(得分:0)
<TypeQuestion>
是元素而不是属性:
var query = from index in xml.Descendants("question")
where (string)index.Element("TypeQuestion") == "eazy"
select index;
要从XElement
中获得问题的名称,它就是x.Element("name").Value
。