2013-02-11 46 views
8

cấu trúc file XML của tôi trông như thế này:Looping thông qua tài liệu 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> 

Tôi muốn đặt tất cả các dữ liệu vào cơ sở dữ liệu như hồ sơ employe sử dụng XmlDocument.

Vì vậy, tôi đã viết một vòng lặp như thế này:

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 là các số nguyên.

+0

Có lẽ cơ sở dữ liệu của bạn sẽ hỗ trợ XML nguyên bản, vì vậy bạn chỉ có thể gửi XML đó đến cơ sở dữ liệu và để cho nó xử lý các chi tiết? –

+0

Tôi không nên sử dụng ReadXml() trong DataSet. Tôi chỉ có thể sử dụng XmlDocument. – sujeesh

Trả lời

11

thử:

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

Có thể thêm một chút xử lý lỗi - chỉ trong trường hợp một trong các nút có thể không tồn tại ... –

+0

Giả sử câu trả lời theo tài liệu xml của anh ấy –

1

xndNode chứa đối tượng nhân viên với trường Tên, AnnualSalary và DaysWorked. Nó chỉ là vấn đề chuyển đổi chúng thành một bảng kê SQL và chèn hàng vào một bảng trong cơ sở dữ liệu của bạn. Các thông tin chi tiết sẽ được cơ sở dữ liệu cụ thể, nhưng nó phải là một cái gì đó như thế này

insert into employee values (name, annual_salary, days_worked) 

Giả nhân viên được keyed theo tên

Các vấn đề liên quan