• XML文件帮助类


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Xml;
    using System.Data;
    using System.IO;
    using System.Windows.Forms;

    //modify 2013-08-21 weiyj 修改XML文件格式
    namespace yjs_cl_seq
    {
        class XMLHelper
        {
            public void createXml(string DocTitle, string path, DataTable sampTable, DataTable zfTable, string CurrentUserName, string netUser, string netPwd, string netIP)
            {
                try
                {
                    path = path + @"" + CurrentUserName;
                    try
                    {
                        //访问的是网络路径
                        if (!string.IsNullOrEmpty(netUser) && !string.IsNullOrEmpty(netPwd) && !string.IsNullOrEmpty(netIP))
                        {
                            if (ConnectHelper.impersonateValidUser(netUser, netIP, netPwd) == false)
                            {
                                MessageBox.Show("网络路径不存在");
                                return;
                            }
                        }
                        //访问的是本地路径
                      
                        if (!Directory.Exists(path))
                        {
                            Directory.CreateDirectory(path);
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("访问路径错误" + ex.ToString());
                        return;
                    }
                    int indexID = 0;

                    XmlTextWriter writer = new XmlTextWriter(path + @"" + DocTitle + "_" + DateTime.Now.ToString("yyyy-MM-dd hhmmssfff") + ".xml", null);
                    //使用自动缩进便于阅读
                    writer.Formatting = Formatting.Indented;
                    //写入根元素
                    //modify by weiyj 2013-08-22
                    writer.WriteStartElement("Samples");
                    if (sampTable != null && sampTable.Rows.Count > 0)
                    {
                        for (int i = 0; i < sampTable.Rows.Count; i++)
                        {
                            int j = 1;
                            int.TryParse(sampTable.Rows[i]["进样次数"].ToString(), out j);

                            int k = 0;
                            while (k < j)
                            {
                                writer.WriteStartElement("Sample");
                                //写入属性及属性的名字
                                //加入子元素
                                //modify by weiyj 2013-08-21 修改XML文件格式                     
                                writer.WriteElementString("Number", (++indexID).ToString());
                                writer.WriteElementString("Location", "1");
                                writer.WriteElementString("Name", sampTable.Rows[i]["名称"].ToString());
                                writer.WriteElementString("CDSMethod", string.Empty);
                                writer.WriteElementString("numberOfInj", "1");
                                writer.WriteElementString("sampleType", "Standard");
                                writer.WriteElementString("CalLevel", string.Empty);
                                writer.WriteElementString("calibration", string.Empty);
                                writer.WriteElementString("UpdateRT", string.Empty);
                                writer.WriteElementString("Interval", string.Empty);
                                writer.WriteElementString("sampleAmount", string.Empty);
                                writer.WriteElementString("Multipliers", string.Empty);
                                writer.WriteElementString("Dilution", string.Empty);
                                writer.WriteElementString("DataFilename", string.Empty);
                                writer.WriteElementString("InjectionVolume", string.Empty);
                                writer.WriteElementString("description", string.Empty);
                                writer.WriteElementString("StudyName", string.Empty);
                                writer.WriteElementString("LimsID", sampTable.Rows[i]["别名"].ToString() + "/" + sampTable.Rows[i]["项目"].ToString() + "/" + sampTable.Rows[i]["称量次数"].ToString());
                                writer.WriteElementString("LimsKField2", sampTable.Rows[i]["项目编号"].ToString());
                                writer.WriteElementString("LimsKField3", "Standard");
                                //end by weiyj 2013-08-21
                                //关闭根元素,并书写结束标签      
                                writer.WriteEndElement();
                                k++;
                            }
                        }
                    }

                    if (zfTable != null && zfTable.Rows.Count > 0)
                    {
                        for (int i = 0; i < zfTable.Rows.Count; i++)
                        {
                            int j = 1;
                            int.TryParse(zfTable.Rows[i]["进样次数"].ToString(), out j);

                            int k = 0;
                            while (k < j)
                            {
                                writer.WriteStartElement("Sample");
                                //写入属性及属性的名字
                                //加入子元素
                                //modify by weiyj 2013-08-21 修改XML文件格式                     
                                writer.WriteElementString("Number", (++indexID).ToString().ToString());
                                writer.WriteElementString("Location", "1");
                                writer.WriteElementString("Name", zfTable.Rows[i]["检品编号"].ToString());
                                writer.WriteElementString("CDSMethod", string.Empty);
                                writer.WriteElementString("numberOfInj", "1");
                                writer.WriteElementString("sampleType", "SAMPLE");
                                writer.WriteElementString("CalLevel", string.Empty);
                                writer.WriteElementString("calibration", string.Empty);
                                writer.WriteElementString("UpdateRT", string.Empty);
                                writer.WriteElementString("Interval", string.Empty);
                                writer.WriteElementString("sampleAmount", string.Empty);
                                writer.WriteElementString("Multipliers", string.Empty);
                                writer.WriteElementString("Dilution", string.Empty);
                                writer.WriteElementString("DataFilename", string.Empty);
                                writer.WriteElementString("InjectionVolume", string.Empty);
                                writer.WriteElementString("description", string.Empty);
                                writer.WriteElementString("StudyName", string.Empty);
                                writer.WriteElementString("LimsID", zfTable.Rows[i]["检品名称"].ToString() + "/" + zfTable.Rows[i]["项目"].ToString() + "/" + zfTable.Rows[i]["称量次数"].ToString());
                                writer.WriteElementString("LimsKField2", zfTable.Rows[i]["项目编号"].ToString());
                                writer.WriteElementString("LimsKField3", "Sample");
                                //end by weiyj 2013-08-21
                                //关闭根元素,并书写结束标签      
                                writer.WriteEndElement();
                                k++;
                            }
                        }
                    }
                    //end by weiyj 2013-08-22
                    writer.WriteEndElement();
                    //将XML写入文件并且关闭XmlTextWriter     
                    writer.Close();
                }
                catch (Exception)
                {
                    throw;
                }
            }

            public void addItem()
            {
                // XmlDocument xmlDoc = new XmlDocument();
                // xmlDoc.Load("titles.xml");
                // XmlNode root = xmlDoc.SelectSingleNode("items");
                // XmlElement xe1 = xmlDoc.createElement_x("item");
                // xe1.SetAttribute("类别", "张三");
                // xe1.SetAttribute("品质", "老师");
                // //XmlElement xmlsub1 = xmlDoc.createElement_x("title");
                // xmlsub1.InnerText = "wahahha"; xe1.AppendChild(xmlsub1);
                //// XmlElement xmlsub2 = xmlDoc.createElement_x("author");
                // xmlsub2.InnerText = "三毛";
                // xe1.AppendChild(xmlsub2);
                // //XmlElement xmlsub3 = xmlDoc.createElement_x("Price");
                // xmlsub3.InnerText = "15.00";
                // xe1.AppendChild(xmlsub3);
                // root.AppendChild(xe1);
                // xmlDoc.Save("titles.xml");
            }

            public void readtext()
            {
                XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("titles.xml");
                XmlNode xn = xmlDoc.SelectSingleNode("items");
                XmlNodeList xnl = xn.ChildNodes; foreach (XmlNode xnf in xnl)
                {
                    XmlElement xe = (XmlElement)xnf;
                    Console.Write("类别  " + xe.GetAttribute("类别") + "     品质  ");//显示属性值                    Console.WriteLine(xe.GetAttribute("品质"));                    XmlNodeList xnf1 = xe.ChildNodes;                    foreach (XmlNode xn2 in xnf1)                    {
                    //Console.WriteLine(xn2.InnerText);//显示子节点点文本                    }
                    Console.WriteLine();
                }
            }

            public void updatexml()
            {
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load("titles.xml");
                XmlNode xns = xmlDoc.SelectSingleNode("items");
                XmlNodeList xnl = xns.ChildNodes;
                foreach (XmlNode xn in xnl)
                {
                    XmlElement xe = (XmlElement)xn;
                    if (xe.GetAttribute("类别") == "文学")
                    {
                        xe.SetAttribute("类别", "娱乐");
                    }
                    else
                    {
                        xe.SetAttribute("类别", "文学");
                    }
                    XmlNodeList xnl2 = xe.ChildNodes; foreach (XmlNode xn2 in xnl2)
                    {
                        XmlElement xe2 = (XmlElement)xn2; if (xe2.Name == "price")
                        {
                            if (xe2.InnerText == "10.00") xe2.InnerText = "15.00";
                            else
                                xe2.InnerText = "10.00";
                        }
                        xmlDoc.Save("titles.xml");
                        Console.WriteLine();
                        Console.WriteLine();
                        Console.WriteLine();
                        Console.WriteLine();
                        readtext();
                    }
                }
            }

            public void delnode()
            {
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load("titles.xml");
                XmlNodeList xnl = xmlDoc.SelectSingleNode("items").ChildNodes;
                foreach (XmlNode xn in xnl)
                {
                    XmlElement xe = (XmlElement)xn;
                    if (xe.GetAttribute("类别") == "文学")
                    {
                        xe.RemoveAttribute("类别");//删除genre属性
                    }
                    else if (xe.GetAttribute("类别") == "娱乐")
                    {
                        xe.RemoveAll();//删除该节点的全部内容
                    }
                }
                xmlDoc.Save("titles.xml");
                Console.WriteLine();
                Console.WriteLine();
                Console.WriteLine();
                Console.WriteLine();
                readtext();
            }
        }
    }

  • 相关阅读:
    中文转码问题总结
    Linux命令总结
    Maven实战系列文章目录
    JXL API总结
    docker 中安装mysql8之后无法远程连接的问题caching-sha2-password
    springboot查数据并以csv格式现在到本地
    aop
    java.lang.ClassNotFoundException: org.aspectj.lang.JoinPoint
    shiro框架中获取username、ip等信息
    cron
  • 原文地址:https://www.cnblogs.com/wenbing/p/3605170.html
Copyright © 2020-2023  润新知