BaseUtil.cs 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. using System;
  2. using System.IO;
  3. using System.Xml;
  4. namespace UAS_AutoPass.ToolClass
  5. {
  6. class BaseUtil
  7. {
  8. public static void CreateXml(string iSN, string iTestResult)
  9. {
  10. //创建XML文档
  11. FileStream fcaches = new FileStream(iSN + ".xml", FileMode.OpenOrCreate, FileAccess.ReadWrite);
  12. fcaches.Close();
  13. FileInfo info = new FileInfo(iSN + ".xml");
  14. if (info.Length == 0)
  15. {
  16. XmlDocument doc = new XmlDocument();
  17. //创建类型声明节点
  18. XmlNode node = doc.CreateXmlDeclaration("1.0", "utf-8", "");
  19. doc.AppendChild(node);
  20. //创建根节点
  21. XmlElement xeRoot = doc.CreateElement("CacheInf");
  22. doc.AppendChild(xeRoot);
  23. doc.Save(iSN + ".xml");
  24. }
  25. }
  26. public static object GetCacheData(string ParamName)
  27. {
  28. try
  29. {
  30. object returnData = null;
  31. //根据地址读取xml文件
  32. XmlDocument doc = new XmlDocument();
  33. XmlReaderSettings settings = new XmlReaderSettings();
  34. //忽略文档里面的注释
  35. settings.IgnoreComments = true;
  36. XmlReader reader = XmlReader.Create(AutoAnalysisXml.CachePath, settings);
  37. doc.Load(reader);
  38. //先得到根节点
  39. XmlNode rootNode = doc.SelectSingleNode("CacheInf");
  40. //再由根节点去找制定的节点
  41. XmlNodeList nodeList = rootNode.ChildNodes;
  42. foreach (XmlNode node in nodeList)
  43. {
  44. //找到了这个节点名字
  45. if (node.Name == ParamName)
  46. {
  47. //返回节点的内容
  48. switch (((XmlElement)node).GetAttribute("Type"))
  49. {
  50. case "System.String":
  51. returnData = node.InnerText;
  52. break;
  53. case "System.Int32":
  54. returnData = int.Parse(node.InnerText);
  55. break;
  56. case "System.Boolean":
  57. returnData = node.InnerText == "True" ? true : false;
  58. break;
  59. default:
  60. break;
  61. }
  62. break;
  63. }
  64. }
  65. //关闭reader
  66. reader.Close();
  67. if (returnData == null)
  68. return "";
  69. else
  70. return returnData;
  71. }
  72. catch (Exception e)
  73. {
  74. Console.WriteLine(e.Message+e.StackTrace);
  75. return "";
  76. }
  77. }
  78. public static void SetCacheData(string ParamName, object Value)
  79. {
  80. try
  81. {
  82. //根据地址读取xml文件
  83. XmlDocument doc = new XmlDocument();
  84. XmlReaderSettings settings = new XmlReaderSettings();
  85. //忽略文档里面的注释
  86. settings.IgnoreComments = true;
  87. XmlReader reader = XmlReader.Create(AutoAnalysisXml.CachePath, settings);
  88. doc.Load(reader);
  89. //先得到根节点
  90. XmlNode rootNode = doc.SelectSingleNode("CacheInf");
  91. //再由根节点去找制定的节点
  92. XmlNodeList nodeList = rootNode.ChildNodes;
  93. bool flag = false;
  94. foreach (XmlNode node in nodeList)
  95. {
  96. //找到了这个节点名字
  97. if (node.Name == ParamName)
  98. {
  99. //就直接赋值
  100. node.InnerText = Value.ToString();
  101. flag = true;
  102. }
  103. }
  104. //如果没有该节点,就创建节点保存结果
  105. if (!flag)
  106. {
  107. //创建节点
  108. XmlElement newNode = doc.CreateElement(ParamName);
  109. XmlAttribute attr = doc.CreateAttribute("Type");
  110. attr.InnerText = Value.GetType().ToString();
  111. newNode.InnerText = Value.ToString();
  112. newNode.SetAttributeNode(attr);
  113. //讲新建的节点挂到根节点上
  114. rootNode.AppendChild(newNode);
  115. }
  116. //关闭Reader
  117. reader.Close();
  118. doc.Save(AutoAnalysisXml.CachePath);
  119. }
  120. catch (Exception)
  121. {
  122. }
  123. }
  124. }
  125. }