私の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
は整数です。
試してください:
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;
}
XDocおよびXElementを使用して、LINQの方法を使用して要素値を取得することもできます。 http://msdn.Microsoft.com/en-us/library/system.xml.linq.xelement.aspx
xndNodeには、Name、AnnualSalary、DaysWorkedフィールドを持つemployeeオブジェクトが含まれています。これらをSQLステートメントに変換し、データベースのテーブルに行を挿入するだけです。詳細はデータベース固有ですが、次のようになります。
insert into employee values (name, annual_salary, days_worked)
従業員が名前でキー入力されていると仮定