在asp.net中使用子子读取XML

时间:2013-12-18 13:02:42

标签: asp.net xml

我的XML采用以下格式。

 <Test1>
<Test>

<Name>A</Name>
<Image>~/FltImages/DL.gif</Image>
<Fare>1243.8</Fare>

<OutbondInfo>
<Duration>0900</Duration>
<Type>Non-Stop</Type>

<Sector>

<Name>A</Name>
<Image>~/FltImages/DL.gif</Image>
<No>4410</No>
<AirCraftNo>744</AirCraftNo>
<CabinClass Name="ECONOMY">M</CabinClass>
</Sector>
</OutbondInfo>

<InboundInfo>
<Duration>0805</Duration>
<Type>Non-Stop</Type>
<Sector>
<Name>A</Name>
<Image>~/FltImages/DL.gif</Image>
<No>4410</No>
<AirCraftNo>744</AirCraftNo>
<CabinClass Name="ECONOMY">M</CabinClass>
</Sector>
</InboundInfo>

<Type>IT</Type>
</Test>
</Test1>

我正在阅读如下详细信息,但我的代码没有读取OutbondInfo和InbondInfo下的代码。如何读取这些标签下的数据并保存在同一个DataSet中,如下面的代码所示。

XmlNode xNode;
xNode = fc.gettDetail(TextBox1.Text);
DataSet ds = new DataSet();
if (xNode != null)
{
    XmlTextReader xmlTextReader = new XmlTextReader(xNode.OuterXml, XmlNodeType.Element, null);
    ds.ReadXml(xmlTextReader);
    GridView1.DataSource = ds;
    GridView1.DataBind();
}

请帮助!!

由于

1 个答案:

答案 0 :(得分:1)

您的DataSet正在返回多个表。您只能选择一个表绑定到gridview。以下是DataSet的外观:

enter image description here

解决方案:对于每个表使用单独的GridView。绑定GridViews如下:

 GridView1.DataSource = ds.Tables["OutbondInfo"];
 GridView1.DataBind();
 //Add another GridView "GridView2" in markup
 GridView2.DataSource = ds.Tables["InboundInfo"];
 GridView2.DataBind();

希望它有所帮助!