2013-02-11 11 views
8

私のXMLファイルの構造は次のようになります。XMLドキュメントをループ

私は XmlDocumentを使用してemployeレコードとしてデータベースにすべてのデータを入れたい
<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 
    } 

AnnualSalaryDaysWorkedは整数です。

+0

データベースがネイティブにXMLをサポートすることがあるので、そのXMLをデータベースに送信してその詳細を処理させることができますか? –

+0

DataSetでReadXml()を使うべきではありません。私はXmlDocumentだけを使うことができます。 – sujeesh

答えて

11

試しをキーとしていると仮定すると、この

insert into employee values (name, annual_salary, days_worked) 

のようなものでなければなりません:あなたはまた、取得しXDOCとのXElementを使用することができます

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

ノードの1つが存在しない可能性がある場合に備えて、ちょっとしたエラー処理を追加するかもしれません... –

+0

彼のxml doc –

1

xndNodeには、Name、AnnualSalary、およびDaysWorkedフィールドを持つ従業員オブジェクトが含まれています。これをSQLステートメントに変換してデータベースのテーブルに挿入するだけです。詳細は、データベース固有のだろうが、それは従業員が名前

関連する問題