C# 我想从元素为空的XML文件中选择数据

C# 我想从元素为空的XML文件中选择数据,c#,asp.net,xml,gridview,C#,Asp.net,Xml,Gridview,这是我编写的代码,但我不知道如何将所选数据放入C#中的gridview中 这是XML数据 <slipList> <slip> <dock>Dock 1</dock> <slipId>2</slipId> <slipWidth>4</slipWidth> <slipLength>12</slipLength> <boatInSlip></boatIn

这是我编写的代码,但我不知道如何将所选数据放入C#中的gridview中

这是XML数据

<slipList>
  <slip>
    <dock>Dock 1</dock>
<slipId>2</slipId>
<slipWidth>4</slipWidth>
<slipLength>12</slipLength>
<boatInSlip></boatInSlip>
<slipHeight>12</slipHeight>
<slipDoor>true</slipDoor>
  </slip>
</slipList>

1号码头
2.
4.
12
12
真的
我想选择所有'slip',其中'boatInSlip'='',并将它们显示在gridview nullSlipGrid中

(编辑1)此结果在gridview中向下显示1列: D o C k

一, 2. 4. 1. 2. 1. 2. T R U
e

您可以在
DataSet
中加载
xml
,它将在
DataTables
中转换,您可以将
DataTable
作为
DataSource
分配给您的
girdview

DataSet ds = new DataSet();
ds.ReadXml(savePath);

nullSlipGrid.DataSource = ds.Tables[0];
nullSlipGrid.DataBind();

你的查询有效吗?您是没有得到预期的数据,还是它抛出了一个错误?在以前的类中,当我删除foreach中的元素(例如customer.remove())时,它起作用。但是,我不想加载整个xml文件。只有“slip”其中的“boatInSlip”==”。@JohnNicolay您必须创建一个自定义类,手动循环遍历节点并创建类的对象。而不是将其分配给gridviewThat(IMO),当您有LINQ到XML可用时,这是一种处理XML的丑陋方法。@MairajAhmad-对于OP所寻找的,LINQ到XML似乎是一种更好的方法。
DataSet ds = new DataSet();
ds.ReadXml(savePath);

nullSlipGrid.DataSource = ds.Tables[0];
nullSlipGrid.DataBind();