简单XML读写操作


创建XML

        /// <summary>
        /// 创建XML
        /// </summary>
        /// <param name="XMLPath"></param>
        public void CreateXMLFile(string XMLPath)
        {
            XmlDocument xmlDoc = new XmlDocument();
            //加入XML的声明段落,Save方法不再xml上写出独立属性
            xmlDoc.AppendChild(xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null));
            //加入根元素
            XmlElement xmlElem = xmlDoc.CreateElement("", "items", "");
            xmlDoc.AppendChild(xmlElem);
            FileName
            //XmlElement xmlElemFileName = xmlDoc.CreateElement("FileName");
    
            //XmlText xmlTextFileName = xmlDoc.CreateTextNode("书籍文件列表");
    
            //xmlElemFileName.AppendChild(xmlTextFileName);
    
            //xmlDoc.ChildNodes.Item(1).AppendChild(xmlElemFileName);
    
            UserInfo
    
            //XmlElement xmlElemUserInfo = xmlDoc.CreateElement("UserInfo");
    
            //xmlDoc.ChildNodes.Item(1).AppendChild(xmlElemUserInfo);
    
            UserName
    
            //XmlElement xmlElemUsrName = xmlDoc.CreateElement("UserName");
    
            //XmlText xmlTextUserName = xmlDoc.CreateTextNode("Arlice");//用户名
    
            //xmlElemUsrName.AppendChild(xmlTextUserName);
    
            //xmlDoc.ChildNodes.Item(1).ChildNodes[1].AppendChild(xmlElemUsrName);
    
            ChineseBook
    
            //XmlElement xmlElemChineseBook = xmlDoc.CreateElement("ChineseBook");
    
            //xmlDoc.ChildNodes.Item(1).AppendChild(xmlElemChineseBook);
    
            Book1
    
            //XmlElement xmlElemBook1 = xmlDoc.CreateElement("Book1");
    
            //xmlElemBook1.SetAttribute("BookCode", "001");
    
            //xmlDoc.ChildNodes.Item(1).ChildNodes[2].AppendChild(xmlElemBook1);
    
            BookName
    
            //XmlElement xmlElemBookName = xmlDoc.CreateElement("BookName");
    
            //XmlText xmlTextBookName = xmlDoc.CreateTextNode("小学语文");//书名
    
            //xmlElemBookName.AppendChild(xmlTextBookName);
    
            //xmlDoc.ChildNodes.Item(1).ChildNodes[2].ChildNodes[0].AppendChild(xmlElemBookName);
    
            publishing house
    
            //XmlElement xmlElemPh = xmlDoc.CreateElement("PublishingHouse");
    
            //XmlText xmlTextPh = xmlDoc.CreateTextNode("电子工业出版社");
    
            //xmlElemPh.AppendChild(xmlTextPh);
    
            //xmlDoc.ChildNodes.Item(1).ChildNodes[2].ChildNodes[0].AppendChild(xmlElemPh);
    
            xmlDoc.Save("D:\\ccccc.xml");
        }


/// <summary>
        /// 根据路径创建XML
        /// </summary>
        /// <param name="XMLPath"></param>
        public void CreateAPPXMLFile(string XMLPath)
        {
            XmlTextWriter writer = new XmlTextWriter(XMLPath, null);
            //使用自动缩进便于阅读 
            writer.Formatting = Formatting.Indented;
            XmlDocument xmldoc = new XmlDocument();
            XmlDeclaration xn = xmldoc.CreateXmlDeclaration("1.0", "gb2312", null);
            xmldoc.AppendChild(xn);
            //写入根元素 
            writer.WriteStartElement("FoundareMenus"); 
            //writer.WriteStartElement("item");
            写入属性及属性的名字 
            //writer.WriteAttributeString("类别", "文学");
            //writer.WriteAttributeString("品质", "优"); 
            加入子元素 
            //writer.WriteElementString("title", "毛著");
            //writer.WriteElementString("author", "毛泽东");
            //writer.WriteElementString("price", "10.0");            
            //关闭根元素,并书写结束标签
            writer.WriteEndElement();
            //将XML写入文件并且关闭XmlTextWriter
            writer.Close(); 
        }


/// <summary>
        /// 添加APP XML信息
        /// </summary>
        /// <param name="XMLPath">XML路径</param>
        /// <param name="appBean">MXL信息</param>
        /// <returns></returns>
        public string AddXmlAppInfo(string XMLPath,FoundareAPPBean appBean)
        {
            //设置返回结果
            string result = "";
            if (XMLPath == null || XMLPath == "")
            {
                return "XML路径为空!";
            }
            if (appBean == null)
            {
                return "APP对象为空!";
            }
            try
            {
                XmlDocument xmldoc = new XmlDocument();
                //将空的文档加载到XNL文件。
                xmldoc.Load(XMLPath);


                //创建新节点根节点
                XmlNode FoundareApp = xmldoc.CreateNode(XmlNodeType.Element, "FoundareAPPBean", null);


                //添加根节点下子节点
                XmlElement APPID = xmldoc.CreateElement("APPID");
                APPID.InnerText = appBean.APPID.ToString();
                FoundareApp.AppendChild(APPID);


                //添加根节点下子节点
                XmlElement APPKey = xmldoc.CreateElement("APPKey");
                APPKey.InnerText = appBean.APPKey.ToString();
                FoundareApp.AppendChild(APPKey);


                //添加根节点下子节点
                XmlElement APPName = xmldoc.CreateElement("APPName");
                APPName.InnerText = appBean.APPName.ToString();
                FoundareApp.AppendChild(APPName);


                //添加根节点下子节点
                XmlElement APPImageUrl = xmldoc.CreateElement("APPImageUrl");
                APPImageUrl.InnerText = appBean.APPImageUrl.ToString();
                FoundareApp.AppendChild(APPImageUrl);


                //添加根节点下子节点
                XmlElement APPLicenseUrl = xmldoc.CreateElement("APPLicenseUrl");
                APPLicenseUrl.InnerText = appBean.APPLicenseUrl.ToString();
                FoundareApp.AppendChild(APPLicenseUrl);


                //添加根节点下子节点
                XmlElement APPDetailUrl = xmldoc.CreateElement("APPDetailUrl");
                APPDetailUrl.InnerText = appBean.APPDetailUrl.ToString();
                FoundareApp.AppendChild(APPDetailUrl);


                //添加根节点下子节点
                XmlElement APPDownLoadUrl = xmldoc.CreateElement("APPDownLoadUrl");
                APPDownLoadUrl.InnerText = appBean.APPDownLoadUrl.ToString();
                FoundareApp.AppendChild(APPDownLoadUrl);


                //添加根节点下子节点
                XmlElement APPTechSupportUrl = xmldoc.CreateElement("APPTechSupportUrl");
                APPTechSupportUrl.InnerText = appBean.APPTechSupportUrl.ToString();
                FoundareApp.AppendChild(APPTechSupportUrl);


                //添加根节点下子节点
                XmlElement IsNew = xmldoc.CreateElement("IsNew");
                IsNew.InnerText = appBean.IsNew.ToString();
                FoundareApp.AppendChild(IsNew);


                //添加根节点下子节点
                XmlElement AddDate = xmldoc.CreateElement("AddDate");
                AddDate.InnerText = appBean.AddDate.ToString();
                FoundareApp.AppendChild(AddDate);


                //添加根节点下子节点
                XmlElement IsFree = xmldoc.CreateElement("IsFree");
                IsFree.InnerText = appBean.IsFree.ToString();
                FoundareApp.AppendChild(IsFree);


                //添加根节点下子节点
                XmlElement APPClassBean = xmldoc.CreateElement("APPClassBean");
                //APPClassBean.InnerText = appBean.APPClassBean.ToString();
                //添加子节点下集合


                //添加子节点下集合下子节点
                XmlElement ClassID = xmldoc.CreateElement("ClassID");
                ClassID.InnerText = appBean.APPClassBean.ClassID.ToString();
                APPClassBean.AppendChild(ClassID);


                //添加子节点下集合下子节点
                XmlElement ClassName = xmldoc.CreateElement("ClassName");
                ClassName.InnerText = appBean.APPClassBean.ClassName.ToString();
                APPClassBean.AppendChild(ClassName);


                //添加子节点下集合下子节点
                XmlElement ClassKey = xmldoc.CreateElement("ClassKey");
                ClassKey.InnerText = appBean.APPClassBean.ClassKey.ToString();
                APPClassBean.AppendChild(ClassKey);


                //添加子节点下集合下子节点
                XmlElement ClassDescrible = xmldoc.CreateElement("ClassDescrible");
                ClassDescrible.InnerText = appBean.APPClassBean.ClassDescrible.ToString();
                APPClassBean.AppendChild(ClassDescrible);
                //将集合节点添加到根节点中
                FoundareApp.AppendChild(APPClassBean);




                //将设置好的节点添加到指定父级节点中
                xmldoc.DocumentElement.AppendChild(FoundareApp);
                //保存到XML中
                xmldoc.Save(XMLPath);
                result = "OK";
            }
            catch (Exception)
            {


                return "Failure";
            }
            return result;
        }

读取XML

/// <summary>
        /// 得到指定路径下XML里面的APP信息
        /// </summary>
        /// <param name="XMLPath">XML路径</param>
        /// <returns>APP集合</returns>
        public List<FoundareAPPBean> GetAPPXMLInfo(string XMLPath)
        {
            List<FoundareAPPBean> FoundareAPPList = new List<FoundareAPPBean>();
            try
            {
                XmlDocument xmldoc = new XmlDocument();
                //将空的文档加载到XNL文件。
                xmldoc.Load(XMLPath);
                //得到顶层节点列表
                XmlNodeList topNodes = xmldoc.DocumentElement.ChildNodes;
                //循环得到所有APP信息
                foreach (XmlElement xmlitem in topNodes)
                {
                    //得到APP根节点
                    if (xmlitem.Name == "FoundareAPPBean")
                    {
                         //得到该节点的子节点
                        XmlNodeList nodelist = xmlitem.ChildNodes;
                        if (nodelist.Count > 0)//节点下是否有子节点
                        {
                            //创建APP对象
                            FoundareAPPBean APPBean = new FoundareAPPBean();
                            //获取APP信息
                            foreach (XmlElement appNode in nodelist)//读元素值
                            {
                                //得到节点名称
                                string appname = appNode.Name;
                                switch (appname)
                                {
                                    case "APPID":
                                        string appID = appNode.FirstChild.Value;
                                        APPBean.APPID = Convert.ToInt32(appID == "" ? "0" : appID);
                                        break;


                                    case "APPKey":
                                        string appKey = appNode.FirstChild.Value;
                                        APPBean.APPKey = Convert.ToString(appKey == "" ? "0" : appKey);
                                        break;


                                    case "APPName":
                                        string appName = appNode.FirstChild.Value;
                                        APPBean.APPName = Convert.ToString(appName == "" ? "0" : appName);
                                        break;


                                    case "APPImageUrl":
                                        string appImageUrl = appNode.FirstChild.Value;
                                        APPBean.APPImageUrl = Convert.ToString(appImageUrl == "" ? "0" : appImageUrl);
                                        break;


                                    case "APPLicenseUrl":
                                        string appLicenseUrl = appNode.FirstChild.Value;
                                        APPBean.APPLicenseUrl = Convert.ToString(appLicenseUrl == "" ? "0" : appLicenseUrl);
                                        break;


                                    case "APPDetailUrl":
                                        string appDetailUrl = appNode.FirstChild.Value;
                                        APPBean.APPDetailUrl = Convert.ToString(appDetailUrl == "" ? "0" : appDetailUrl);
                                        break;


                                    case "APPDownLoadUrl":
                                        string appDownLoadUrl = appNode.FirstChild.Value;
                                        APPBean.APPDownLoadUrl = Convert.ToString(appDownLoadUrl == "" ? "0" : appDownLoadUrl);
                                        break;


                                    case "APPTechSupportUrl":
                                        string appTechSupportUrl = appNode.FirstChild.Value;
                                        APPBean.APPTechSupportUrl = Convert.ToString(appTechSupportUrl == "" ? "0" : appTechSupportUrl);
                                        break;


                                    case "IsNew":
                                        string isNew = appNode.FirstChild.Value;
                                        APPBean.IsNew = Convert.ToBoolean(isNew == "" ? "0" : isNew);
                                        break;


                                    case "AddDate":
                                        string appDate = appNode.FirstChild.Value;
                                        APPBean.AddDate = Convert.ToDateTime(appDate == "" ? "0000-00-00 00:00" : appDate);
                                        break;


                                    case "IsFree":
                                        string isFree = appNode.FirstChild.Value;
                                        APPBean.IsFree = Convert.ToBoolean(isFree == "" ? "0" : isFree);
                                        break;


                                    case "APPClassBean":
                                        if (APPBean.APPClassBean == null)
                                        {
                                            APPBean.APPClassBean = new FoundareAPPClassBean();
                                        }
                                        //得到该节点的子节点集合
                                        XmlNodeList APPClassBeanNodes = appNode.ChildNodes;
                                        foreach (XmlElement ClassBeanNode in APPClassBeanNodes)
                                        {
                                            //得到节点名称
                                            string ClassBeanNodeName = ClassBeanNode.Name;
                                            switch (ClassBeanNodeName)
                                            {
                                                case "ClassID":
                                                    string classID = ClassBeanNode.FirstChild.Value;
                                                    APPBean.APPClassBean.ClassID = Convert.ToInt32(classID == "" ? "0" : classID);
                                                    break;


                                                case "ClassName":
                                                    string className = ClassBeanNode.FirstChild.Value;
                                                    APPBean.APPClassBean.ClassName = Convert.ToString(className == "" ? "0" : className);
                                                    break;


                                                case "ClassKey":
                                                    string classKey = ClassBeanNode.FirstChild.Value;
                                                    APPBean.APPClassBean.ClassKey = Convert.ToString(classKey == "" ? "0" : classKey);
                                                    break;


                                                case "ClassDescrible":
                                                    string classDescrible = ClassBeanNode.FirstChild.Value;
                                                    APPBean.APPClassBean.ClassDescrible = Convert.ToString(classDescrible == "" ? "0" : classDescrible);
                                                    break;


                                            }
                                        }
                                        break;
                                }
                            }
                            FoundareAPPList.Add(APPBean);
                        }
                    }
                }
            }
            catch (Exception)
            {


                return null;
            }


            return FoundareAPPList;
        }



修改和读入是一样的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值