读写XML文件
来源:互联网 发布:ppt数据展示模板 编辑:程序博客网 时间:2024/05/17 22:40
#region 读写xml配置文件 public void ReadPrintConfig() { string sFileName = Application.StartupPath + @"\" + this.Text + ".xml"; if (!File.Exists(sFileName)) return; //读取打印机参数 XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(sFileName); // XmlNode PrinterParam = xmldoc.SelectSingleNode("PrintConfig/PrinterParam"); if (PrinterParam != null) { XmlNode xesub1 = PrinterParam.SelectSingleNode("PrinterName"); if (xesub1 != null) this.cbxSelectPrinter.Text = xesub1.InnerText; XmlNode xesub2 = PrinterParam.SelectSingleNode("PaperSize"); if (xesub2 != null) { XmlElement xe = (XmlElement)xesub2; this.cbxPaperKind.Text = xe.GetAttribute("Kind"); this.nudPaperWidth.Value = Math.Max(Convert.ToInt32(xe.GetAttribute("Width")), 50); this.nudPaperHeight.Value = Math.Max(Convert.ToInt32(xe.GetAttribute("Height")), 50); } } //读取打印项目位置 XmlNode PrintItemList = xmldoc.SelectSingleNode("PrintConfig/PrintItemList"); if (PrintItemList == null) return; XmlNodeList xnl = PrintItemList.ChildNodes; foreach (XmlNode xnf in xnl) { XmlElement xe = (XmlElement)xnf; string sName = xe.Name; int x = Convert.ToInt32(xe.GetAttribute("X")); int y = Convert.ToInt32(xe.GetAttribute("Y")); // //MessageBox.Show(sName); Control[] ctrlList = this.Controls.Find(sName, true); if (ctrlList.Length > 0) { ctrlList[0].Left = x; ctrlList[0].Top = y; } } } private void WritePrintConfig() { XmlDocument xmldoc = new XmlDocument(); //xml声明行 var xmlnode = xmldoc.CreateNode(XmlNodeType.XmlDeclaration, "", ""); xmldoc.AppendChild(xmlnode); //打印配置 XmlNode PrintConfig = xmldoc.CreateNode(XmlNodeType.Element, "PrintConfig", null); xmldoc.AppendChild(PrintConfig); //打印机参数 XmlNode PrinterParam = xmldoc.CreateNode(XmlNodeType.Element, "PrinterParam", null); PrintConfig.AppendChild(PrinterParam); XmlElement xesub1 = xmldoc.CreateElement("PrinterName"); xesub1.InnerText = this.cbxSelectPrinter.Text; PrinterParam.AppendChild(xesub1); XmlElement xesub2 = xmldoc.CreateElement("PaperSize"); xesub2.SetAttribute("Kind", this.cbxPaperKind.Text); xesub2.SetAttribute("Width", this.nudPaperWidth.Value.ToString()); xesub2.SetAttribute("Height", this.nudPaperHeight.Value.ToString()); PrinterParam.AppendChild(xesub2); //打印项目列表 XmlNode PrintItemList = xmldoc.CreateNode(XmlNodeType.Element, "PrintItemList", null); PrintConfig.AppendChild(PrintItemList); foreach (Control ctrl in this.Controls) { //MessageBox.Show(ctrl.Name); if (ctrl is Label) { XmlElement xe = xmldoc.CreateElement(ctrl.Name); xe.SetAttribute("X", ctrl.Left.ToString()); xe.SetAttribute("Y", ctrl.Top.ToString()); PrintItemList.AppendChild(xe); } } //保存 string sFileName = Application.StartupPath + @"\" + this.Text + ".xml"; if (File.Exists(sFileName)) File.Delete(sFileName); xmldoc.Save(sFileName); MessageBox.Show("打印配置已成功保存到文件:\n\n" + sFileName); } #endregion
生成的XML文件格式如下:
<?xml version="1.0"?><PrintConfig> <PrinterParam> <PrinterName>Microsoft XPS Document Writer</PrinterName> <PaperSize Kind="自定义" Width="241" Height="152" /> </PrinterParam> <PrintItemList> <lbl备注 X="538" Y="441" /> <lbl税务机关 X="554" Y="81" /> <lbl纳税人识别号 X="151" Y="117" /> <lbl填票人 X="156" Y="468" /> <lbl金额合计 X="732" Y="333" /> <lbl金额合计大写 X="151" Y="387" /> <lbl税种 X="151" Y="230" /> <lbl实缴金额 X="731" Y="230" /> <lbl品目名称 X="330" Y="231" /> <lbl地址 X="151" Y="165" /> <lbl填开日期 X="323" Y="81" /> <lbl纳税人名称 X="395" Y="114" /> </PrintItemList></PrintConfig>
确实很方便,比使用INI文件灵活多了!
0 0
- 读写XML文件
- 读写XML文件
- c#读写xml文件
- c#读写xml文件
- c#读写xml文件
- DOM 读写XML文件
- 读写XML文件
- C#读写xml文件
- 读写Xml文件
- c#读写xml文件
- javascript读写XML文件
- VC读写XML文件
- VC读写XML文件
- C#读写xml文件
- c# 读写xml文件
- C#读写xml文件
- xml文件操作( 读写)
- jdom读写XML文件
- Google Code Jam Notes - Rope Intranet - Java
- Google Code Jam Notes - Reverse Words - Java
- Google Code Jam Notes - Read Phone Number - Java
- Google Code Jam Notes - Rational Number Tree - Java
- Google Code Jam Notes - Moist - Java
- 读写XML文件
- 图片的圆角处理
- 如何编写testbench的总结(非常实用的总结)
- 《珍藏TC2.0》: TCC.exe,TLink.exe,TLib.exe 命令行选项及其使用!
- ICONIX是尽早进入编码阶段
- Google Code Jam Notes - Minimum Scalar Product - Java
- J2EE --- Servlet
- 用递归实现控制台输入数字的阶乘
- 数据库事务概述