asp.net 操作xml文档

来源:互联网 发布:思维导图用什么软件 编辑:程序博客网 时间:2024/06/05 00:14

       XmlDocument xmlDoc=new XmlDocument();//先创建一个xmldocument文档对象

         /// <summary>
        /// 加载xml文档
        /// </summary>
        /// <returns></returns>
        public void LoadXml()
        {
            xmlDoc.Load(Server.MapPath("/xmldemo/person.xml"));//load里面跟文档名称 带上文件的路径
        }
        //添加节点
        private void AddElement()
        {

            LoadXml();
            XmlNode xmlNode = xmlDoc.SelectSingleNode("user");
            XmlElement xmlEle = xmlDoc.CreateElement("person");
            xmlEle.SetAttribute("name","清风");
            xmlEle.SetAttribute("sex", "男");
            xmlEle.SetAttribute("age", "23");
            xmlNode.AppendChild(xmlEle);
            //添加pass节点
            XmlElement xmlEle1 = xmlDoc.CreateElement("pass");
            xmlEle1.InnerText = "123456";
            xmlEle.AppendChild(xmlEle1);
            //添加Address节点
            XmlElement xmlEle2 = xmlDoc.CreateElement("Address");
            xmlEle2.InnerText = "河南省开封市开封县";
            xmlEle.AppendChild(xmlEle2);
            xmlDoc.AppendChild(xmlNode);
            xmlDoc.Save(Server.MapPath("/xmldemo/person.xml"));//保存文档


        }
        //修改节点
        private void UpdateElement()
        {
            LoadXml();
            XmlNodeList nodeList = xmlDoc.SelectSingleNode("user").ChildNodes;//获取bookstore节点的所有子节点
            foreach (XmlNode node in nodeList)
            {
                XmlElement xmlEle = (XmlElement)node;
                if (xmlEle.GetAttribute("name") == "清风")
                {
                    foreach (XmlNode node1 in node.ChildNodes)
                    {
                        if (node1.Name == "pass")
                        {
                            XmlElement xmlEle1 = (XmlElement)node1;
                            xmlEle1.InnerText = "爱,请深爱;不爱,请离开!";
                            break;
                        }
                        //XmlElement xmlEle1=
                    }
                    break;
                }
            }
            xmlDoc.Save(Server.MapPath("/xmldemo/person.xml"));//保存文档
        }


        //删出节点
        private void deleteNode()
        {

            LoadXml();
            XmlNodeList xnl = xmlDoc.SelectSingleNode("user").ChildNodes;
            foreach (XmlNode node in xnl)
            {
                XmlElement xmlEle = (XmlElement)node;
                if (xmlEle.GetAttribute("name") == "凌风")
                {
                    node.ParentNode.RemoveChild(node);
                    break;
                }
            }
            xmlDoc.Save(Server.MapPath("/xmldemo/person.xml"));//保存文档
        }

        /// <summary>
        /// 读取xml文档中的内容
        /// </summary>
        /// <returns></returns>
        public string ReadInfo()
        {
            StringBuilder strBuilder = new StringBuilder();
            LoadXml();
            XmlNodeList nodeList = xmlDoc.SelectSingleNode("user").ChildNodes;
            foreach (XmlNode node in nodeList)
            {
                XmlElement xmlEle = (XmlElement)node;
                strBuilder.Append("姓名:");
                string name = xmlEle.GetAttribute("name");
                strBuilder.Append(xmlEle.GetAttribute("name"));
                strBuilder.Append("</br>");
                if (node.HasChildNodes)//判断是否有子节点 可不要
                {
                    foreach (XmlNode node1 in node.ChildNodes)
                    {
                        if (node1.Name == "Address")//显示某些节点下的内容
                        {
                            XmlElement xmlEle1 = (XmlElement)node1;
                            strBuilder.Append("地址:");
                            strBuilder.Append(node1.InnerText);
                            strBuilder.Append("<br/>");   //显示样式可以拼接一些html标签 如果层次不是太深 可以将内容读取到DataTable对象中 然后与数据控件绑定
                        }
                    }
                }
            }
            return strBuilder.ToString();
        }

xml文档格式如下

<?xml version="1.0" encoding="utf-8"?>

<user>
  <person name="凌风" sex="男" age="23">
    <pass>123</pass>
    <Address>地球</Address>
  </person>
</user>

原创粉丝点击