将Xml转换为DataTable

Vij*_*dra 10 c# xml asp.net datatable

我有一个XML文件,我想在Datatable中插入它.xml文件的格式如下:

<userid ID="37729">
  <TestId ID="84" TimeRemaining="60" />
  <QuestId ID="1">
    <Answer1>
    </Answer1>
    <Answer2>B</Answer2>
    <Answer3>
    </Answer3>
    <Answer4>
    </Answer4>
  </QuestId>
</userid>
Run Code Online (Sandbox Code Playgroud)

现在我想在下面的数据表中插入它:

Question Id     Answer1      Answer2        Answer3        Answer4
1                 A                                         D

2                             B              C     

3                                            C                     
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我实现这一目标.

Col*_*inE 15

我首先DataTable使用您需要的列创建一个,然后通过Linq-to-XML填充它.

您可以使用Select查询创建表示每行的对象,然后使用标准方法为每个项创建DataRows ...

class Quest
{
    public string Answer1;
    public string Answer2;
    public string Answer3;
    public string Answer4;
}

public static void Main()
{
    var doc = XDocument.Load("filename.xml");

    var rows = doc.Descendants("QuestId").Select(el => new Quest
    {
        Answer1 = el.Element("Answer1").Value,
        Answer2 = el.Element("Answer2").Value,
        Answer3 = el.Element("Answer3").Value,
        Answer4 = el.Element("Answer4").Value,
    });

    // iterate over the rows and add to DataTable ...

}
Run Code Online (Sandbox Code Playgroud)

  • 但我想知道为什么我在`new()`之后得到'type expected` (7认同)

Sha*_*ake 13

DataSet ds = new DataSet();
ds.ReadXml(fileNamePath);
Run Code Online (Sandbox Code Playgroud)

  • 你确定提供的XML是适合ReadXml的格式吗? (6认同)