123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- using System;
- using System.IO;
- using System.Xml;
- namespace UAS_XmlAnalysor
- {
- class BaseUtil
- {
- public static void CreateXml(string iSN, string iTestResult)
- {
- //创建XML文档
- FileStream fcaches = new FileStream(iSN ,FileMode.OpenOrCreate, FileAccess.ReadWrite);
- fcaches.Close();
- FileInfo info = new FileInfo(iSN);
- if (info.Length == 0)
- {
- XmlDocument doc = new XmlDocument();
- //创建类型声明节点
- XmlNode node = doc.CreateXmlDeclaration("1.0", "utf-8", "");
- doc.AppendChild(node);
- //创建根节点
- XmlElement xeRoot = doc.CreateElement("CacheInf");
- doc.AppendChild(xeRoot);
- doc.Save(iSN + ".xml");
- }
- }
- public static object GetCacheData(string ParamName)
- {
- try
- {
- object returnData = null;
- //根据地址读取xml文件
- XmlDocument doc = new XmlDocument();
- XmlReaderSettings settings = new XmlReaderSettings();
- //忽略文档里面的注释
- settings.IgnoreComments = true;
- XmlReader reader = XmlReader.Create(Form1.CachePath, settings);
- doc.Load(reader);
- //先得到根节点
- XmlNode rootNode = doc.SelectSingleNode("CacheInf");
- //再由根节点去找制定的节点
- XmlNodeList nodeList = rootNode.ChildNodes;
- foreach (XmlNode node in nodeList)
- {
- //找到了这个节点名字
- if (node.Name == ParamName)
- {
- //返回节点的内容
- switch (((XmlElement)node).GetAttribute("Type"))
- {
- case "System.String":
- returnData = node.InnerText;
- break;
- case "System.Int32":
- returnData = int.Parse(node.InnerText);
- break;
- case "System.Boolean":
- returnData = node.InnerText == "True" ? true : false;
- break;
- default:
- break;
- }
- break;
- }
- }
- //关闭reader
- reader.Close();
- if (returnData == null)
- return "";
- else
- return returnData;
- }
- catch (Exception)
- {
- return "";
- }
- }
- public static void SetCacheData(string ParamName, object Value)
- {
- try
- {
- //根据地址读取xml文件
- XmlDocument doc = new XmlDocument();
- XmlReaderSettings settings = new XmlReaderSettings();
- //忽略文档里面的注释
- settings.IgnoreComments = true;
- XmlReader reader = XmlReader.Create(Form1.CachePath, settings);
- doc.Load(reader);
- //先得到根节点
- XmlNode rootNode = doc.SelectSingleNode("CacheInf");
- //再由根节点去找制定的节点
- XmlNodeList nodeList = rootNode.ChildNodes;
- bool flag = false;
- foreach (XmlNode node in nodeList)
- {
- //找到了这个节点名字
- if (node.Name == ParamName)
- {
- //就直接赋值
- node.InnerText = Value.ToString();
- flag = true;
- }
- }
- //如果没有该节点,就创建节点保存结果
- if (!flag)
- {
- //创建节点
- XmlElement newNode = doc.CreateElement(ParamName);
- XmlAttribute attr = doc.CreateAttribute("Type");
- attr.InnerText = Value.GetType().ToString();
- newNode.InnerText = Value.ToString();
- newNode.SetAttributeNode(attr);
- //讲新建的节点挂到根节点上
- rootNode.AppendChild(newNode);
- }
- //关闭Reader
- reader.Close();
- doc.Save(Form1.CachePath);
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
-
- }
- }
- }
- }
|