1 public void CalculateLeave(string userAcount, string xml) //传过来的是xml内容
2 {
3 try
4 {
5 var xmlDoc = new System.Xml.XmlDataDocument(); //生成一个xml操作对象
6 xmlDoc.LoadXml(xml); //加载xml内容文本 注意Load加载的是物理路径
7 var xmlRoot = xmlDoc.DocumentElement; //使用 XmlDocument读取的方法,还有LINQ和XmlTextReader
8 if (xmlRoot == null) return;
9 var node = xmlRoot.SelectNodes("Item"); //找到所有的Item节点
10 if (node == null) return;
11 decimal sum = 0;
12 foreach (XmlNode xn in node)
13 {
14 var singleNode = xn.SelectSingleNode("ExpenseType"); //SelectNodes和SelectSingleNode就是所有和单个的区别
15 if (singleNode == null || singleNode.InnerText != "年休假") continue;
16 var selectSingleNode = xn.SelectSingleNode("Days");
17 if (selectSingleNode == null) continue;
18 var day = selectSingleNode.InnerText;
19 sum += Convert.ToDecimal(day);
20 }
21 var user = BLL.MasterDataSservice.UserConfigureService.GetInstance().Get(userAcount);
22
23 user.Annualleave = Convert.ToDecimal(user.Annualleave) - sum;
24 BLL.MasterDataSservice.UserConfigureService.GetInstance().Update(user);
25 }
26 catch (Exception)
27 {
28
29
30 }
31 }