2013-02-11 162 views
8

我的XML文件的結構是這樣的:循環通過XML文檔

<SalaryDetails> 
    <Employee> 
     <Name>George Dsouza</Name> 
     <AnnualSalary>320000</AnnualSalary> 
     <DaysWorked>22</DaysWorked> 
    </Employee> 
    <Employee> 
     <Name>Jackie Parera</Name> 
     <AnnualSalary>300000</AnnualSalary> 
     <DaysWorked>19</DaysWorked> 
    </Employee> 
... 
</SalaryDetails> 

我希望把所有的數據到數據庫使用XmlDocument僱工的記錄。

所以我寫了這樣一個循環:

XmlDocument xdcDocument = new XmlDocument(); 

xdcDocument.Load(@"D:\SalaryDetails.xml"); 

XmlElement xelRoot = xdcDocument.DocumentElement; 
XmlNodeList xnlNodes = xelRoot.SelectNodes("/SalaryDetails/Employee"); 

foreach(XmlNode xndNode in xnlNodes) 
    { 
     //What to write here?? 
     //My sql insert command will go here 
    } 

AnnualSalaryDaysWorked是整數。

+0

也許您的數據庫本來會支持XML,那麼您可以將該XML發送到數據庫並讓它處理細節? – 2013-02-11 05:56:41

+0

我不應該在DataSet中使用ReadXml()。我只能使用XmlDocument。 – sujeesh 2013-02-11 05:58:34

回答

11

嘗試:

foreach (XmlNode xndNode in xnlNodes) 
{ 
    string name= xndNode ["Name"].InnerText; 
    string AnnualSalary= xndNode ["AnnualSalary"].InnerText; 
    string DaysWorked= xndNode ["DaysWorked"].InnerText; 

//Your sql insert command will go here; 
} 
+0

也許會添加一些錯誤處理 - 以防萬一其中一個節點可能不存在... – 2013-02-11 06:04:23

+0

假設答案按照他的xml文檔 – 2013-02-11 06:06:01

1

xndNode包含名稱,AnnualSalary和DaysWorked字段的僱員對象。這只是將它們轉換爲SQL語句並將該行插入到數據庫中的表中。細節是特定的數據庫,但它應該是這樣的

insert into employee values (name, annual_salary, days_worked) 

假設員工的名字被鍵入