我需要在大约400个不同的XML文件上迭代循环,并且每次我都会得到不同的XML文件。
XML中有大约11个节点(所有节点都以
我不知道哪个xml节点将为空,我也不想为每个节点添加一个null检查。。
在循环中是否有一种实现整个XML文件的通用空检查的方法,如果任何节点为空,我可以将其分配给其相应实体中相应数据类型的默认值。类似于下面显示的代码片段:
XML中有大约11个节点(所有节点都以
String
形式出现),我正在解析这个XML并使用Entity Framework将XML元素的值存储在数据库中(使用不同的数据类型,如Decimal
、int
、string
、double
)。我不知道哪个xml节点将为空,我也不想为每个节点添加一个null检查。。
在循环中是否有一种实现整个XML文件的通用空检查的方法,如果任何节点为空,我可以将其分配给其相应实体中相应数据类型的默认值。类似于下面显示的代码片段:
foreach (XmlNode node in tableElements)
{
dcSearchTerm searchTermEntity = new dcSearchTerm();
//Reference keywords: creation & assignment
int IDRef = 0, salesRef = 0, visitsRef = 0, saleItemsRef = 0;
DateTime visitDateRef = new DateTime();
decimal revenueRef = 0;
int.TryParse(node["id"].InnerText, out IDRef);
searchTermEntity.SearchTerm = node["Search_x0020_Term"].InnerText;
searchTermEntity.ReferrerDomain = node["Referrer_x0020_Domain"].InnerText;
if (node["Country"] == null)
{
searchTermEntity.Country = "";
}
else
{
searchTermEntity.Country = node["Country"].InnerText;
}
DateTime.TryParse(node["Visit_x0020_Date"].InnerText, out visitDateRef);
searchTermEntity.VisitEntryPage = node["Visit_x0020_Entry_x0020_Page"].InnerText;
int.TryParse(node["Sales"].InnerText, out salesRef);
int.TryParse(node["Visits"].InnerText, out visitsRef);
decimal.TryParse(node["Revenue"].InnerText, out revenueRef);
int.TryParse(node["Sale_x0020_Items"].InnerText, out saleItemsRef);
// assigning reference values to the entity
searchTermEntity.ID = IDRef;
searchTermEntity.VisitDate = visitDateRef;
searchTermEntity.Sales = salesRef;
searchTermEntity.Visits = visitsRef;
searchTermEntity.Revenue = revenueRef;
searchTermEntity.SaleItems = saleItemsRef;
searches.Add(searchTermEntity);
return searches;
}
备注:这是我在 Stack Overflow 上的第一个问题,请随意要求更多细节。期待涌现出大量建议!:)