xml檔案轉化為datatable
阿新 • • 發佈:2019-02-09
asp.net 新建xml檔案,程式碼如附件:
<?xml version="1.0" encoding="utf-8" ?> <content> <information> <name>Annie</name> <sex>Female</sex> <Age>25</Age> </information> <information> <name>Tom</name> <sex>male</sex> <Age>28</Age> </information> <information> <name>Lily</name> <sex>Female</sex> <Age>22</Age> </information> </content>
後臺寫轉換方法
private static DataTable xmlToDataTable(string xml) { DataTable dt = new DataTable(); XmlDocument doc = new XmlDocument(); doc.Load(xml); foreach(XmlNode x in doc.FirstChild.FirstChild.ChildNodes) { dt.Columns.Add(x.Name,typeof(string)); } foreach(XmlNode xx in doc.FirstChild.ChildNodes) { DataRow dr=dt.NewRow(); foreach(XmlNode x in xx.ChildNodes) { dr[x.Name]=x.InnerText; } dt.Rows.Add(dr); } return dt; }
在呼叫之後出現錯誤,root=null,doc裡面的資料是正確的,但是doc.firstchilld抓的是第一行宣告列。
之後將xml檔案中第一行宣告去掉,則不再報錯。想知道為什麼會把宣告當成根元素去抓?