1

私のxml


<?xml version="1.0" encoding="utf-8" ?>
<Category>
  <Youth>

  </Youth>
  <GeneralStores>

  </GeneralStores>
  <Schools>

  </Schools>
  <Colleges>

  </Colleges>
  <GovernmentOffices>

  </GovernmentOffices>
  <Restaurants>

  </Restaurants>
  <MovieTheatres>

  </MovieTheatres>

</Category>

次のようなデータテーブルが必要です

_______________________

Category
__________
Youth
GeneralStores
Schools
Colleges
GovernmentOffices
Restaurants
MovieTheatres

必要なデータソース イベントで、このデータテーブルを telrik rad グリッドにバインドしています

ここに私の.csコードがあります

protected void CategoriesRadGrid_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
    try
    {
        //create the DataTable that will hold the data
        DataTable CategoryDT = new DataTable("MainCategory");
        CategoryDT.Columns.Add("Category", System.Type.GetType("System.String"));
      CategoryDT.ReadXml(@"C:\Users\MyID\Documents\Visual Studio 2010\Projects\SomeName\InfoXML\XMLCategory.xml");
    }
    catch (Exception ex)
    {

    }
}
  1. コードは、データ テーブルにデータがなくても正常に実行されます。
  2. また、ファイルがサーバー上にあるときにファイルの場所を指定する方法を教えてください。現在、ファイルがあるローカル マシン パスを使用しています。
4

2 に答える 2

2

XmlDocument を使用して XML を読み取る

XmlDocument doc= new XmlDocument();
doc.Load("physical path to file.xml");
// doc.LoadXml(stringXml);

DataTable dt = new DataTable();

if(doc.ChildNodes[1]!=null)
   dt.Columns.Add(doc.ChildNodes[1].Name); //Assuming you want the rood node to be the only column of the datatable

 //iterate through all the childnodes of your root i.e. Category
foreach(XmlNode node in doc.ChildNodes [1].ChildNodes )
{
  dt.Rows.Add(node.Name);
} 
于 2013-03-05T20:51:09.130 に答える