2013-02-11 2 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 
    } 

AnnualSalary и DaysWorked целые числа.

+0

Возможно, ваша база данных будет поддерживать XML изначально, поэтому вы можете просто отправить этот XML в базу данных и позволить ему обрабатывать детали? –

+0

Я не должен использовать ReadXml() в DataSet. Я могу использовать только XmlDocument. – sujeesh

ответ

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

Возможно, добавьте немного обработки ошибок - на всякий случай один из узлов может не существовать ... –

+0

Принимая ответ в соответствии с его xml-документом –

1

xndNode содержит объект сотрудника с полями Name, AnnualSalary и DaysWorked. Речь идет только о преобразовании их в статут SQL и вставке строки в таблицу в вашей базе данных. Детали будет база данных конкретных, но это должно быть что-то вроде этого

insert into employee values (name, annual_salary, days_worked) 

Если предположить, что сотрудники имеют ключ от имени

Смежные вопросы