繁体   English   中英

将XML文档转换为类

[英]Convert XML Document to classes

我有以下来自3方的xml文档,并保存在数据库中。 我试图找出获取文档和加载类的最佳方式,以便我可以操纵数据,然后将其保存到数据库中代表该类的表中。

<Payroll xmlns:dtv="http://www.datavantagecorp.com/xstore/"><dtv:Payroll>
<dtv:StartDate>2015-02-08</dtv:StartDate>
<dtv:EndDate>2015-02-14</dtv:EndDate>
<dtv:PostedDate>2015-02-16</dtv:PostedDate>
<dtv:Employee EmployeeId="111122">
<dtv:EmployeePayStatus></dtv:EmployeePayStatus>
<dtv:PayrollStoreNumber>8009</dtv:PayrollStoreNumber>
<dtv:ReviewedDate></dtv:ReviewedDate>
<dtv:PayrollCategory Category="OT">
<dtv:PayrollDate>2015-02-14</dtv:PayrollDate>
<dtv:Hours>0.53</dtv:Hours>
<dtv:PayrollDate>2015-02-12</dtv:PayrollDate>
<dtv:Hours>0.77</dtv:Hours>
<dtv:PayrollDate>2015-02-11</dtv:PayrollDate>
<dtv:Hours>0.13</dtv:Hours>
<dtv:PayrollDate>2015-02-09</dtv:PayrollDate>
<dtv:Hours>0.12</dtv:Hours>
</dtv:PayrollCategory>
<dtv:PayrollCategory Category="DT">
</dtv:PayrollCategory>
<dtv:PayrollCategory Category="REGULAR">
<dtv:PayrollDate>2015-02-09</dtv:PayrollDate>
<dtv:Hours>8.00</dtv:Hours>
<dtv:WorkCode code="888">
<dtv:TotalHours>8.12</dtv:TotalHours>
</dtv:WorkCode>
<dtv:PayrollDate>2015-02-10</dtv:PayrollDate>
<dtv:Hours>6.03</dtv:Hours>
<dtv:WorkCode code="888">
<dtv:TotalHours>6.03</dtv:TotalHours>
</dtv:WorkCode>
<dtv:PayrollDate>2015-02-11</dtv:PayrollDate>
<dtv:Hours>8.00</dtv:Hours>
<dtv:WorkCode code="888">
<dtv:TotalHours>8.13</dtv:TotalHours>
</dtv:WorkCode>
<dtv:PayrollDate>2015-02-12</dtv:PayrollDate>
<dtv:Hours>8.00</dtv:Hours>
<dtv:WorkCode code="888">
<dtv:TotalHours>8.77</dtv:TotalHours>
</dtv:WorkCode>
<dtv:PayrollDate>2015-02-13</dtv:PayrollDate>
<dtv:Hours>6.81</dtv:Hours>
<dtv:WorkCode code="888">
<dtv:TotalHours>6.81</dtv:TotalHours>
</dtv:WorkCode>
<dtv:PayrollDate>2015-02-14</dtv:PayrollDate>
<dtv:Hours>3.16</dtv:Hours>
<dtv:WorkCode code="888">
<dtv:TotalHours>3.69</dtv:TotalHours>
</dtv:WorkCode>
</dtv:PayrollCategory>
<dtv:PayrollCategory Category="SICK">
</dtv:PayrollCategory>
<dtv:PayrollCategory Category="VACATION">
</dtv:PayrollCategory>
<dtv:PayrollCategory Category="HOLIDAY">
</dtv:PayrollCategory>
<dtv:PayrollCategory Category="RT">
</dtv:PayrollCategory>
<dtv:PayrollCategory Category="EO">
</dtv:PayrollCategory>
<dtv:PayrollCategory Category="RSA">
</dtv:PayrollCategory>
</dtv:Employee>
</dtv:Payroll>
</Payroll>

XML在工资表中可以有多个雇员。 我以为我会上以下课程:

薪资员工薪资类别

对于每个薪资,都有一个雇员列表,每个雇员都有一个PayrollCategory列表。 我已经开始沿着下面的路径前进,但是不确定这是最好的方法还是有更好的解决方案。

                foreach (DataRow row in ds.Tables[0].Rows)
                {
                    var doc = new XmlDocument();
                    doc.LoadXml(row[0].ToString());
                }

任何建议或有关如何外出处理此问题的链接将不胜感激。

我建议为您的XML元素创建类,您可以从XML文档对其进行序列化/反序列化。 有关如何执行此操作的一些问题和答案(例如在此处找到的问题和答案)。

如果您的XML文档具有XSD架构,则可能甚至可以自动生成类。

foreach (var row in ds.Tables[0].Rows)
{
    var doc = XDocument.Load(new MemoryStream(new UTF8Encoding().GetBytes(row[0])));
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM