2013-02-11 26 views
8

My XML dosyası yapısı aşağıdaki gibidir:XML belgesine döngüye alınması

Ben XmlDocument kullanarak employe kayıtları gibi veritabanına tüm verileri koymak istiyorum
<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 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 
    } 

AnnualSalary ve DaysWorked tam sayılardır:

Yani böyle bir döngü yazdı.

+0

Belki de veritabanınız XML'yi yerel olarak destekleyecektir, bu yüzden bu XML'i veritabanına gönderebilir ve ayrıntıları ele alabilir misiniz? –

+0

DataSet'te ReadXml() kullanmamalıyım. Ben sadece XmlDocument'i kullanabilirim. – sujeesh

cevap

11

deneyin:

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

Belki de bir hata işleme ekleyelim - sadece düğümlerden biri mevcut olmayabilir ... –

+0

Onun xml doc göre cevap varsayarsak –

1

xndNode, Name, AnnualSalary ve DaysWorked alanlarına sahip bir çalışan nesnesi içerir. Bunları sadece bir SQL statüsüne dönüştürmek ve satırı veritabanınızda bir tabloya eklemek meselesi. ayrıntıları veritabanı özgü olurdu, ama bu isimle kilitlenmiştir çalışanları varsayarsak bu

insert into employee values (name, annual_salary, days_worked) 

gibi bir şey olmalıdır

İlgili konular