2013-12-18 2 views
1

Мой XML находится в следующем формате.Чтение XML с дочерним элементом дочернего элемента в asp.net

<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. Как я могу читать данные в этих тегах и сохранять в том же наборе данных, как показано в приведенном ниже коде.

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(); 
} 

Пожалуйста, помогите !!

Thanks

ответ

1

Ваш DataSet возвращает несколько таблиц. Вы можете выбрать только одну таблицу для привязки к gridview. Вот как ваш DataSet выглядит:

enter image description here

Решение: Для каждой таблицы использовать отдельный GridView. Bind GridViews как ниже:

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

Надеется, что это помогает!

Смежные вопросы