zoukankan      html  css  js  c++  java
  • C#Xml的三种创建方式(或者是两种?)和增删改查

    一.Xml的创建方式

    点击查看代码
    	XElement xElement = new XElement(
    			  new XElement("ProductType",
    				  new XElement("BMW",
    					  new XElement("Threshold", "Search", new XAttribute("Max", 100)),//后面这个是obj类型,写啥都行,输出的时候XAttribute.Value都是string类型
    					  new XElement("Threshold", "Search", new XAttribute("Min", "20")),
    					  new XElement("ROI", "Rect1"),
    					  new XElement("Date", DateTime.Now.ToString("yyyy-MM-dd"))
    					  ),
    				   new XElement("Volvo",
    					new XElement("Threshold", "Search", new XAttribute("Max", 100)),
    					  new XElement("Threshold", "Search", new XAttribute("Min", "20")),
    					  new XElement("ROI", "Rect2"),
    					  new XElement("Date", DateTime.Now.ToString("yyyy-MM-dd"))
    					   )));
    			string iniPath = Application.StartupPath + "\params";
    			string xmlPath = iniPath + "\ProductInfo.xml";
    			//需要指定编码格式,否则在读取时会抛:根级别上的数据无效。 第 1 行 位置 1异常
    			XmlWriterSettings settings = new XmlWriterSettings();
    		        settings.Encoding = new UTF8Encoding(false);
    		        settings.Indent = true;
    		        XmlWriter xw = XmlWriter.Create(xmlPath, settings);//不用xmlwriter 用document写也一样的,但是writer快一点
    		        xElement.Save(xw);
                            xw.Flush();
    		        xw.Close();
    
    3. 使用Xdocument建立(树结构,速度比writer慢,不推荐)
    点击查看代码
     
              //使用XDocument创建xml
                 System.Xml.Linq.XDocument xdoc = new XDocument();
                 XDeclaration xdec = new XDeclaration("1.0", "utf-8", "yes");
                 xdoc.Declaration = xdec;
      
                  //添加根节点
                 XElement rootEle = new XElement("school");
                 xdoc.Add(rootEle);
     
                 //给根节点添加子节点
                 XElement classEle = new XElement("class");
                 XAttribute attrClass = new XAttribute("No", 1);
                 classEle.Add(attrClass);
                 rootEle.Add(classEle);//其实就是看哪个Xelement.Add的,哪个加的哪个就是谁的子节点
    
                 XElement classEle1 = new XElement("class1");
                 XAttribute attrClass1 = new XAttribute("No", 1);
                 classEle1.Add(attrClass1);
                 rootEle.Add(classEle1);
    
                 //添加子节点下的元素
                 XElement stuEle = new XElement("student");
                 XAttribute atrStu = new XAttribute("sid", "20180101");
                 stuEle.Add(atrStu);
                 classEle.Add(stuEle);
    
                 //保存文件
                 xdoc.Save("d:\zzz\TestB.xml");
    
    
    二.Xml的读取 1.使用Xdocument进行读取 var doc =Xdocument.Load( 路径【string】 ); 或者Xdocument doc=Xdocument.Load( 路径【string】 );

    XDocument 属性
    三.Xml的增加
    1.可以用上面第三种里面的XElement.Add()去添加节点到对应的位置
    //没写完

  • 相关阅读:
    python类的继承
    Numpy float64和Python float是一样的
    ndarray的用法总结
    pandas的Panel类型dtype
    C++中类的前向声明
    numpy的searchsorted细品
    发现Boost官方文档的一处错误(numpy的ndarray)
    C++读取dll文件所在目录
    64位的pyd报"ImportError: No module named"错误
    WIN32,_WIN32_WIN64
  • 原文地址:https://www.cnblogs.com/dengzhekaihua/p/15465946.html
Copyright © 2011-2022 走看看