/// <summary> /// 添加节点 /// </summary> /// <param name="path"></param> /// <param name="mNode"></param> public static void Insert(string path, MaterialsNode mNode) { try { XmlDocument doc = new XmlDocument(); doc.Load(path); XmlNode root = doc.SelectSingleNode(mNode.RNode); //查找根节点 XmlElement xe = doc.CreateElement(mNode.PNode); //创建一个父节点 xe.SetAttribute(mNode.PNodeAttr, mNode.PNodeValue); //为父节点添加属性 if (mNode.CNode.Length > 0) { for (int i = 0; i < mNode.CNode.Length; i++) { XmlElement xesub1 = doc.CreateElement(mNode.CNode[i]); xesub1.InnerText = mNode.CNodeValue[i]; //设置文本节点 xe.AppendChild(xesub1); //添加到<book>节点中 } } root.AppendChild(xe); doc.Save(path); } catch (Exception ex) { throw new Exception(ex.Message); } }
public static void Delete(string path, MaterialsNode mNode) { try { XmlDocument doc = new XmlDocument(); XmlReaderSettings settings = new XmlReaderSettings(); settings.IgnoreComments = true; XmlReader reader = XmlReader.Create(path, settings); doc.Load(reader); //doc.Load(path); XmlNodeList nodeList = doc.SelectSingleNode(mNode.RNode).ChildNodes; foreach (XmlNode node in nodeList) { XmlElement xe = (XmlElement)node; if (xe.GetAttribute(mNode.PNodeAttr) == mNode.PNodeValue) { xe.RemoveAttribute(mNode.PNodeAttr);//删除genre属性 } else if (xe.GetAttribute(mNode.PNodeAttr) == mNode.PNodeNewValue) { //xe.RemoveAll();//删除该节点的全部内容 node.ParentNode.RemoveChild(node); } } reader.Close(); doc.Save(path); } catch (Exception ex) { throw new Exception(ex.Message); } }
public static List <MaterialsData> GetXmlData(string path, MaterialsNode mNode) { List <MaterialsData> list = new List <MaterialsData>(); try { XmlDocument doc = new XmlDocument(); XmlReaderSettings settings = new XmlReaderSettings(); settings.IgnoreComments = true; XmlReader reader = XmlReader.Create(path, settings); doc.Load(reader); XmlNodeList xnl = doc.SelectSingleNode(mNode.RNode).ChildNodes; foreach (XmlNode node in xnl) { MaterialsData data = new MaterialsData(); XmlElement xe = (XmlElement)node; XmlNodeList xnf1 = xe.ChildNodes; foreach (XmlNode xn2 in xnf1) { XmlElement x = (XmlElement)xn2; if (x.Name == "Value") { data.Area = x.InnerText; } if (x.Name == "Path") { data.Path = x.InnerText; } if (x.Name == "Type") { data.Type = x.InnerText; } if (x.Name == "Depth") { data.Depth = x.InnerText; } //Console.WriteLine(xn2.InnerText);//显示子节点点文本 } list.Add(data); } reader.Close(); } catch (Exception ex) { throw new Exception(ex.Message); } return(list); }
private void LoadData() { if (!File.Exists(imageConfig)) { XmlHelper.CreateImageXml(imageConfig); PiEncryptHelper.EncFile(imageConfig); } if (PiEncryptHelper.IsFileEnc(imageConfig, ref nKeyID)) { PiEncryptHelper.DecFile(imageConfig); } MaterialsNode mNode = new MaterialsNode(); mNode.RNode = "Materials"; List <MaterialsData> list = XmlHelper.GetXmlData(imageConfig, mNode); PiEncryptHelper.EncFile(imageConfig); BindDgvMain(list); }
protected override void btnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { try { int index = gvMain.FocusedRowHandle; if (index <= -1) { MessageBox.Show(@"请选择需要删除的型材!", @"错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (DialogResult.Yes == MessageBox.Show(@"是否删除选中的型材数据?", @"提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information)) { MaterialsNode mNode = new MaterialsNode(); mNode.RNode = "Materials"; mNode.PNodeAttr = "key"; mNode.PNodeNewValue = this.gvMain.GetFocusedRowCellValue("Area").ToString(); string filename = this.gvMain.GetFocusedRowCellValue("Path").ToString(); this.gvMain.DeleteRow(index); if (PiEncryptHelper.IsFileEnc(imageConfig, ref nKeyID)) { PiEncryptHelper.DecFile(imageConfig); } XmlHelper.Delete(imageConfig, mNode); PiEncryptHelper.EncFile(imageConfig); if (File.Exists(filename)) { File.SetAttributes(filename, FileAttributes.Normal); File.Delete(filename); } } } catch (Exception ex) { MessageBox.Show(ex.Message, @"错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public static void Update(string path, MaterialsNode mNode) { try { XmlDocument doc = new XmlDocument(); XmlReaderSettings settings = new XmlReaderSettings(); settings.IgnoreComments = true; XmlReader reader = XmlReader.Create(path, settings); doc.Load(reader); XmlNodeList nodeList = doc.SelectSingleNode(mNode.RNode).ChildNodes; foreach (XmlNode node in nodeList) { XmlElement xe = (XmlElement)node; if (xe.GetAttribute(mNode.PNodeAttr) == mNode.PNodeValue) { xe.SetAttribute(mNode.PNodeAttr, mNode.PNodeNewValue); XmlNodeList nls = xe.ChildNodes; foreach (XmlNode n in nls) { XmlElement xl = (XmlElement)n; for (int i = 0; i < mNode.CNode.Length; i++) { if (xl.Name == mNode.CNode[i]) { xl.InnerText = mNode.CNodeValue[i]; break; } } } break; } } reader.Close(); doc.Save(path); } catch (Exception ex) { throw new Exception(ex.Message); } }
private void LoadProfileInfo() { if (!File.Exists(imageConfig)) { XmlHelper.CreateImageXml(imageConfig); PiEncryptHelper.EncFile(imageConfig); } if (PiEncryptHelper.IsFileEnc(imageConfig, ref nKeyID)) { PiEncryptHelper.DecFile(imageConfig); } MaterialsNode mNode = new MaterialsNode(); mNode.RNode = "Materials"; list = XmlHelper.GetXmlData(imageConfig, mNode); PiEncryptHelper.EncFile(imageConfig); gcMain.DataSource = null; gcMain.DataSource = list; }
private void btnStart_Click(object sender, EventArgs e) { AsyncWaitForm.Instance.AsyncShow("开始导入型材", "正在导入型材", delegate(AsyncWaitForm exfrm) { exfrm.SetMsgAndProgress("导入型材", 10); if (!File.Exists(imageConfig)) { XmlHelper.CreateImageXml(imageConfig); PiEncryptHelper.EncFile(imageConfig); } if (PiEncryptHelper.IsFileEnc(imageConfig, ref nKeyID)) { ; } { PiEncryptHelper.DecFile(imageConfig); } OpenFileDialog ofd = new OpenFileDialog(); //ofd.Filter = @"图像文件(*.jpg;*.jpg;*.jpeg;*.gif;*.png)|*.jpg;*.jpeg;*.gif;*.png"; ofd.Filter = @"图像文件(*.png)|*.png"; ofd.Multiselect = true; ofd.Title = @"请选择文件"; ofd.RestoreDirectory = true; MaterialsNode mNode = new MaterialsNode(); mNode.CNode = new string[4]; mNode.CNodeValue = new string[4]; string path = AppDomain.CurrentDomain.BaseDirectory + "MaterialsImg\\" + lueType.Text + "\\"; if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } if (ofd.ShowDialog() == DialogResult.OK) { foreach (var item in ofd.SafeFileNames) { string filename = path + item.ToLower(); if (File.Exists(filename)) { MessageBox.Show(string.Format("【{0}】型材已经存在!", item.ToLower().Replace(".png", ""))); return; } } for (int i = 0; i < ofd.FileNames.Length; i++) { string filePath = path + ofd.SafeFileNames[i].ToLower(); string truePath = "MaterialsImg\\" + lueType.Text + "\\" + ofd.SafeFileNames[i].ToLower(); if (File.Exists(filePath)) { MessageBox.Show(string.Format("【{0}】型材已经存在!", ofd.SafeFileNames[i].ToLower().Replace(".png", ""))); return; } if (File.Exists(filePath)) { XmlHelper.Update(imageConfig, "Image//Key_" + ofd.SafeFileNames[i].ToLower().Replace(".png", ""), "Path", filePath); } else { mNode.RNode = "Materials"; mNode.PNode = "Image"; mNode.PNodeAttr = "key"; mNode.PNodeValue = ofd.SafeFileNames[i].ToLower().Replace(".png", ""); mNode.CNode[0] = "Type"; mNode.CNodeValue[0] = lueType.Text; mNode.CNode[1] = "Value"; mNode.CNodeValue[1] = ofd.SafeFileNames[i].ToLower().Replace(".png", ""); mNode.CNode[2] = "Path"; mNode.CNodeValue[2] = truePath; mNode.CNode[3] = "Depth"; mNode.CNodeValue[3] = txtDepth.Text; //XmlHelper.Insert(xmlPath, "Image", "Key_" + ofd.SafeFileNames[i].Replace(".png", ""), "Path", // filePath); XmlHelper.Insert(imageConfig, mNode); } File.Copy(ofd.FileNames[i].ToLower(), filePath, true); } //XmlHelper.Insert(); } exfrm.SetMsgAndProgress("导入完成", 90); DialogResult = DialogResult.OK; PiEncryptHelper.EncFile(imageConfig); }, delegate { AsyncWaitForm.Instance.SetMsgAndProgress(100); }); }