当前位置: 移动技术网 > IT编程>开发语言>.net > Asp.Net+XML操作基类(修改,删除,新增,创建)第1/2页

Asp.Net+XML操作基类(修改,删除,新增,创建)第1/2页

2018年04月21日  | 移动技术网IT编程  | 我要评论

滑头鬼之孙官网,海芋,女子偷窃室友被直播


        #region 创建xml文档
        /**************************************************
         * 对象名称:xmlobject
         * 功能说明:创建xml文档        
         * 使用示列:
         *          using ec; //引用命名空间
         *          string xmlpath = server.mappath("test.xml");
         *          xmlobject obj = new xmlobject();
         *          创建根节点
         *          obj.createxmlroot("root");
         *          // 创建空节点
         *          //obj.creatxmlnode("root", "node");
         *          //创建一个带值的节点
         *          //obj.creatxmlnode("root", "node", "带值的节点");
         *          //创建一个仅带属性的节点
         *          //obj.creatxmlnode("root", "node", "attribe", "属性值");
         *          //创建一个仅带两个属性值的节点
         *          //obj.creatxmlnode("root", "node", "attribe", "属性值", "attribe2", "属性值2");
         *          //创建一个带属性值的节点值的节点
         *          // obj.creatxmlnode("root", "node", "attribe", "属性值","节点值");
         *          //在当前节点插入带两个属性值的节点
         *          obj.creatxmlnode("root", "node", "attribe", "属性值", "attribe2", "属性值2","节点值");
         *          obj.xmlsave(xmlpath);
         *          obj.dispose();        
         ************************************************/


        #region 创建一个只有声明和根节点的xml文档
        /// <summary>
        /// 创建一个只有声明和根节点的xml文档
        /// </summary>
        /// <param name="root"></param>
        public void createxmlroot(string root)
        {
          //加入xml的声明段落
            xmlnode = xmldoc.createnode(xmlnodetype.xmldeclaration, "", "");
            xmldoc.appendchild(xmlnode);
            //加入一个根元素
            xmlelem = xmldoc.createelement("", root, "");
            xmldoc.appendchild(xmlelem);

        }
        #endregion

        #region 在当前节点下插入一个空节点节点
        /// <summary>
        /// 在当前节点下插入一个空节点节点
        /// </summary>
        /// <param name="mainnode">当前节点路径</param>
        /// <param name="node">节点名称</param>
        public void creatxmlnode(string mainnode,string node)
        {
            xmlnode mainnode = xmldoc.selectsinglenode(mainnode);
            xmlelement objelem = xmldoc.createelement(node);            
            mainnode.appendchild(objelem);
        }
        #endregion

        #region 在当前节点插入一个仅带值的节点
        /// <summary>
        ///  在当前节点插入一个仅带值的节点
        /// </summary>
        /// <param name="mainnode">当前节点</param>
        /// <param name="node">新节点</param>
        /// <param name="content">新节点值</param>
        public void creatxmlnode(string mainnode, string node, string content)
        {
            xmlnode mainnode = xmldoc.selectsinglenode(mainnode);
            xmlelement objelem = xmldoc.createelement(node);
            objelem.innertext = content;
            mainnode.appendchild(objelem);
        }
        #endregion

        #region 在当前节点的插入一个仅带属性值的节点
        /// <summary>
        /// 在当前节点的插入一个仅带属性值的节点
        /// </summary>
        /// <param name="mainnode">当前节点或路径</param>
        /// <param name="node">新节点</param>
        /// <param name="attrib">新节点属性名称</param>
        /// <param name="attribvalue">新节点属性值</param>
        public void creatxmlnode(string mainnode, string node, string attrib, string attribvalue)
        {
            xmlnode mainnode = xmldoc.selectsinglenode(mainnode);
            xmlelement objelem = xmldoc.createelement(node);
            objelem.setattribute(attrib, attribvalue);
            mainnode.appendchild(objelem);
        }       
        #endregion

        #region 创建一个带属性值的节点值的节点
        /// <summary>
        /// 创建一个带属性值的节点值的节点
        /// </summary>
        /// <param name="mainnode">当前节点或路径</param>
        /// <param name="node">节点名称</param>
        /// <param name="attrib">属性名称</param>
        /// <param name="attribvalue">属性值</param>
        /// <param name="content">节点传情</param>
        public void creatxmlnode(string mainnode, string node, string attrib, string attribvalue,string content)
        {
            xmlnode mainnode = xmldoc.selectsinglenode(mainnode);
            xmlelement objelem = xmldoc.createelement(node);
            objelem.setattribute(attrib, attribvalue);
            objelem.innertext = content;
            mainnode.appendchild(objelem);
        }       
        #endregion      

        #region 在当前节点的插入一个仅带2个属性值的节点
        /// <summary>
        ///  在当前节点的插入一个仅带2个属性值的节点
        /// </summary>
        /// <param name="mainnode">当前节点或路径</param>
        /// <param name="node">节点名称</param>
        /// <param name="attrib">属性名称一</param>
        /// <param name="attribvalue">属性值一</param>
        /// <param name="attrib2">属性名称二</param>
        /// <param name="attribvalue2">属性值二</param>
        public void creatxmlnode(string mainnode, string node, string attrib, string attribvalue,string attrib2,string attribvalue2)
        {
            xmlnode mainnode = xmldoc.selectsinglenode(mainnode);
            xmlelement objelem = xmldoc.createelement(node);
            objelem.setattribute(attrib, attribvalue);
            objelem.setattribute(attrib2, attribvalue2);
            mainnode.appendchild(objelem);
        }
        #endregion

        #region 在当前节点插入带两个属性的节点
        /// <summary>
        ///  在当前节点插入带两个属性的节点
        /// </summary>
        /// <param name="mainnode">当前节点或路径</param>
        /// <param name="node">节点名称</param>
        /// <param name="attrib">属性名称一</param>
        /// <param name="attribvalue">属性值一</param>
        /// <param name="attrib2">属性名称二</param>
        /// <param name="attribvalue2">属性值二</param>
        /// <param name="content">节点值</param>
        public void creatxmlnode(string mainnode, string node, string attrib, string attribvalue, string attrib2, string attribvalue2,string content)
        {
            xmlnode mainnode = xmldoc.selectsinglenode(mainnode);
            xmlelement objelem = xmldoc.createelement(node);
            objelem.setattribute(attrib, attribvalue);
            objelem.setattribute(attrib2, attribvalue2);
            objelem.innertext = content;
            mainnode.appendchild(objelem);
        }
        #endregion

        #region 保存xml
        /// <summary>
        /// 保存xml
        /// </summary>
        /// <param name="path">保存的当前路径</param>
        public void xmlsave(string path)
        {
            xmldoc.save(path);
        }

        #endregion

        #endregion

#region 根据父节点属性值读取子节点值
        /**************************************************
         * 函数名称:getsubelementbyattribute(string xmlpath, string fatherelenetname, string attributename, int attributeindex, int arraylength)
         * 功能说明:根据父节点属性值读取子节点值
         * 参    数: xmlpath:xml路径;fatherelenetname:父节点名;attributename:属性值;attributeindex:属性索引;arraylength:要返回的节点数组长度
         * 适应用xml:
         * <root>
      *   <page name="/index.aspx">
   *      <title>域名注册、虚拟主机、企业邮局、服务器托管、网站空间租用|---第一商务</title>
   *      <keywords>虚拟主机,域名注册,服务器托管,杭州,服务器租用,</keywords>
   *      <description>描述内容 </description>
      *    </page>
         * </root>
         *           arraylist al = new arraylist();
         *           al = ec.xmlobject.getsubelementbyattribute(xmlpath, "page", "/index.aspx", 0, 3);
         *           for (int i = 0; i < al.count; i++)
         *           {
         *               response.write(al[i].tostring());
         *               response.write("<br>");
         *           }
         ************************************************/
        /// <summary>
        /// 根据父节点属性读取字节点值
        /// </summary>
        /// <param name="xmlpath">xml路径</param>
        /// <param name="fatherelenetname">父节点名</param>
        /// <param name="attributename">属性值</param>
        /// <param name="attributeindex">属性索引</param>
        /// <param name="arraylength">要返回的节点数组长度</param>
        /// <returns></returns>
        public static system.collections.arraylist getsubelementbyattribute(string xmlpath, string fatherelenetname, string attributename, int attributeindex, int arraylength)
        {
            system.collections.arraylist al = new system.collections.arraylist();
            xmldocument docxml = new xmldocument();
            docxml.load(@xmlpath);
            xmlnodelist xn = docxml.documentelement.childnodes;
            //遍历第一层节点
            foreach (xmlelement element in xn)
            {
                //判断父节点是否为指定节点
                if (element.name == fatherelenetname)
                {
                    //判断父节点属性的索引是否大于指定索引
                    if (element.attributes.count < attributeindex)
                        return null;
                    //判断父节点的属性值是否等于指定属性
                    if (element.attributes[attributeindex].value == attributename)
                    {
                        xmlnodelist xx = element.childnodes;
                        if (xx.count > 0)
                        {
                            for (int i = 0; i < arraylength & i < xx.count; i++)
                            {
                                al.add(xx[i].innertext);
                            }
                        }
                    }

                }
            }
            return al;
        }

        #endregion

        #region 根据节点属性读取子节点值(较省资源模式)
        /**************************************************
         * 函数名称:getsubelementbyattribute(string xmlpath, string fatherelement, string attributename, string attributevalue, int arraylength)
         * 功能说明:根据父节点属性值读取子节点值
         * 参    数: xmlpath:xml路径;fatherelenetname:父节点名;attributename:属性名;attributevalue:属性值;arraylength:要返回的节点数组长度
         * 适应用xml:
         * <root>
      *   <page name="/index.aspx">
   *      <title>域名注册、虚拟主机、企业邮局、服务器托管、网站空间租用|---第一商务</title>
   *      <keywords>虚拟主机,域名注册,服务器托管,杭州,服务器租用,</keywords>
   *      <description>描述内容 </description>
      *    </page>
         * </root>
         *           arraylist al = new arraylist();
         *           al = ec.xmlobject.getsubelementbyattribute(xmlpath, "page", "@name", "/index.aspx", 3);
         *           for (int i = 0; i < al.count; i++)
         *           {
         *               response.write(al[i].tostring());
         *               response.write("<br>");
         *           }
         ************************************************/
        /// <summary>
        /// 根据节点属性读取子节点值(较省资源模式)
        /// </summary>
        /// <param name="xmlpath">xml路径</param>
        /// <param name="fatherelement">父节点值</param>
        /// <param name="attributename">属性名称</param>
        /// <param name="attributevalue">属性值</param>
        /// <param name="arraylength">返回的数组长度</param>
        /// <returns></returns>
        public static  system.collections.arraylist getsubelementbyattribute(string xmlpath, string fatherelement, string attributename, string attributevalue, int arraylength)
        {
            system.collections.arraylist al = new system.collections.arraylist();
            xmldocument docxml = new xmldocument();
            docxml.load(@xmlpath);
            xmlnodelist xn;
            xn = docxml.documentelement.selectnodes("//" + fatherelement + "[" + @attributename + "='" + attributevalue + "']");
            xmlnodelist xx = xn.item(0).childnodes;
            for (int i = 0; i < arraylength & i < xx.count; i++)
            {

                al.add(xx.item(i).innertext);
            }
            return al;

        }
        #endregion
    }
}
2

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网