Operate XML

public class Grenarate_XML
{
public static string path = AppDomain.CurrentDomain.BaseDirectory;

    XmlDocument xmlDoc;
    public string nodeName { get; set; }
    public string update_time { get; set; }
    public string first_Line { get; set; }
    public string last_Line { get; set; }
    public string record { get; set; }

    public Grenarate_XML()
    {
        nodeName = string.Empty;
        update_time = string.Empty;
        first_Line = string.Empty;
        last_Line = string.Empty;
        record = string.Empty;
    }


    public void InsertNode(string strNodeName, Grenarate_XML node)
    {
        xmlDoc = new XmlDocument();
        xmlDoc.Load(path + "\\Configure_log.xml");  // load XML file

        //从指定的字符加载 xml 文件
        //xmlDoc.LoadXml(""); 

        XmlNode root = xmlDoc.SelectSingleNode("transfer/Log"); //查找<log>

        XmlElement xel = xmlDoc.CreateElement(strNodeName);

        XmlElement xesub1 = xmlDoc.CreateElement("Update_time");
        xesub1.InnerText = System.DateTime.Now.ToString();  //设置节点的文本值
        xel.AppendChild(xesub1);  //添加到  strNodeName 节点中

        XmlElement xesub2 = xmlDoc.CreateElement("First_Line");
        xesub2.InnerText = node.first_Line;  //设置节点的文本值
        xel.AppendChild(xesub2);  //添加到  strNodeName 节点中

        XmlElement xesub3 = xmlDoc.CreateElement("Last_Line");
        xesub3.InnerText = node.last_Line;  //设置节点的文本值
        xel.AppendChild(xesub3);  //添加到  strNodeName 节点中

        XmlElement xesub4 = xmlDoc.CreateElement("Record");
        xesub4.InnerText = node.record;  //设置节点的文本值
        xel.AppendChild(xesub4);  //添加到  strNodeName 节点中

        root.AppendChild(xel);
        xmlDoc.Save(path + "\\Configure_log.xml");
    }

    /// <summary>
    /// 
    /// </summary>
    /// <param name="strFileName"></param>
    /// <returns></returns>
    public bool QueryNode(string strFileName)
    {
        bool flag=false;

        xmlDoc = new XmlDocument();
        xmlDoc.Load(path + "\\Configure_log.xml");  // load XML file

        XmlNode xn = xmlDoc.SelectSingleNode("transfer/Log/" + strFileName);
        if (xn != null)
        {
           flag = true;
        }

        return flag;
    }


    /// <summary>
    /// get file node information
    /// </summary>
    /// <param name="strFileName"></param>
    /// <returns></returns>
    public Grenarate_XML GetNode_Information(string strFileName)
    { 
        xmlDoc = new XmlDocument();
        xmlDoc.Load(path + "\\Configure_log.xml");  // load XML file

        XmlNode xn = xmlDoc.SelectSingleNode("transfer/Log/" + strFileName);
        XmlNodeList xnl = xn.ChildNodes;

        foreach (XmlNode xnf in xnl)
        {
            XmlElement xe = (XmlElement)xnf; 
            this.nodeName = strFileName;

            switch (xe.Name)
            {
                case "Update_time":

                    this.update_time = xe.InnerText;
                    break;
                case "First_Line":
                    this.first_Line = xe.InnerText;
                    break;
                case "Last_Line":
                    this.last_Line = xe.InnerText;
                    break;
                case "Record": 
                    this.record = xe.InnerText; 
                    break;
            } 
        }

        return this;
    }

    /// <summary>
    /// update node information
    /// </summary>
    public void UpdateNode(string strNodeName,Grenarate_XML node)
    {
        xmlDoc = new XmlDocument();
        xmlDoc.Load(path + "\\Configure_log.xml");  // load XML file

        // 获取 <log> 节点的所有子节点

        XmlNodeList nodeList = xmlDoc.SelectSingleNode("transfer/Log/" + strNodeName).ChildNodes;

        foreach(XmlNode xn in nodeList)
        {
           XmlElement xe =  (XmlElement)xn;  //将子节点类型转换为 XmlElement 类型

           //xe.GetAttribute("");
           //xe.SetAttributeNode("","")
            switch(xe.Name)
            {
               case "Update_time":
                    xe.InnerText =System.DateTime.Now.ToString(); //则修改 
                    break;
               case "First_Line":
                    xe.InnerText = node.first_Line;
                    break;
               case "Last_Line":
                     xe.InnerText = node.last_Line;
                     break;
               case "Record": 
                     xe.InnerText = node.record;
                     break; 
            }
        }

        xmlDoc.Save( path + "\\Configure_log.xml");
    }


    public string ShowXml(string strFileName)
    {
        string str="";

        xmlDoc = new XmlDocument();
        xmlDoc.Load("D:\\ImportTestData\\ImportData\\ImportData\\Configure_log.xml");

        XmlNode xn = xmlDoc.SelectSingleNode(strFileName);
        XmlNodeList xnl = xn.ChildNodes;

        foreach (XmlNode xnf in xnl)
        {
            XmlElement xe = (XmlElement)xnf;
            if (str == "")
            {
                str = xe.InnerText;
            }
            else
            {
                str = str + ";" +  xe.InnerText;
            }
         }

        return str;
     }

    public string readXML()
    {

        XmlDocument xmlDoc = new XmlDocument();

        xmlDoc.Load( path + "\\Configure_log.xml"); //xmlPath为xml文件路径      
        XmlNode xmlNode1 = xmlDoc.SelectSingleNode("/transfer/database/tables/PMA_CSV_INFO/fields");
        string str = xmlNode1.InnerText;

        return str;
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值