zoukankan      html  css  js  c++  java
  • 一个是对于带有命名空间的xml进行操作

    今天想写一个可以生成excel xml 格式的类库,可是对于xml的操作语法不熟悉,所以试了又试,
    一个是替换节点
    一个是对于带有命名空间的xml进行操作。


    static void XmlTest1()
            
    {
                
    //替换节点
                System.Xml.XmlDocument doc = new XmlDocument();
                doc.AppendChild(doc.CreateElement(
    "Root"));
                doc.DocumentElement.AppendChild(doc.CreateElement(
    "sub"));
                XmlNode node1 
    = doc.CreateElement("sub1");

                System.Xml.XmlDocument doc2 
    = new XmlDocument();
                XmlNode node2 
    = doc2.CreateElement("sub2");

                doc.DocumentElement.ReplaceChild(node1,doc.DocumentElement.SelectSingleNode(
    "sub"));
                
    //doc.DocumentElement.ReplaceChild(node2,doc.DocumentElement.SelectSingleNode("sub"));
                
                doc.Save(
    "xml.xml");
            }

            
    static void XmlTest2()
            
    {
                
    //对具有命名空间的xml进行操作
                System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
                System.Xml.XmlNamespaceManager xm 
    = new System.Xml.XmlNamespaceManager(doc.NameTable);            
                xm.AddNamespace(
    "o","urn:schemas-microsoft-com:office:office");
                xm.AddNamespace(
    "x","urn:schemas-microsoft-com:office:excel");
                xm.AddNamespace(
    "s","urn:schemas-microsoft-com:office:spreadsheet");
                doc.AppendChild(doc.CreateXmlDeclaration(
    "1.0","",""));
                doc.AppendChild(doc.CreateProcessingInstruction(
    "mso-application","progid=\"Excel.Sheet\""));
                
                System.Xml.XmlNode  node 
    = doc.CreateNode(System.Xml.XmlNodeType.Element,"s","RootNode",xm.LookupNamespace("s"));

                XmlAttribute NewAttribute 
    = doc.CreateAttribute("xmlns:x");
                NewAttribute.Value 
    = xm.LookupNamespace("x");
                node.Attributes.SetNamedItem(NewAttribute);

                NewAttribute 
    = doc.CreateAttribute("xmlns:o");
                NewAttribute.Value 
    = xm.LookupNamespace("o");
                node.Attributes.SetNamedItem(NewAttribute);
                
                doc.AppendChild(node);            
                doc.DocumentElement.AppendChild(doc.CreateElement(
    "s","test",xm.LookupNamespace("s")));
                doc.DocumentElement.AppendChild(doc.CreateElement(
    "x","test",xm.LookupNamespace("x")));
                doc.Save(
    "xml.xml");

                XmlNode  objNode 
    = doc.DocumentElement.SelectSingleNode("s:test",xm);
            }


    static void XmlTest1()
            
    {
                
    //替换节点
                System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
                doc.AppendChild(doc.CreateElement(
    "Root"));
                doc.DocumentElement.AppendChild(doc.CreateElement(
    "sub"));
                XmlNode node1 
    = doc.CreateElement("sub1");

                System.Xml.XmlDocument doc2 
    = new XmlDocument();
                XmlNode node2 
    = doc2.CreateElement("sub2");

                
    //doc.DocumentElement.ReplaceChild(node1,doc.DocumentElement.SelectSingleNode("sub"));

                System.Xml.XmlNode  node3 
    = doc.ReadNode(new System.Xml.XmlTextReader(new System.IO.StringReader(node2.OuterXml)));
                doc.DocumentElement.ReplaceChild(node3,doc.DocumentElement.SelectSingleNode(
    "sub"));
                doc.DocumentElement.AppendChild(node3);
                
                doc.Save(
    "xml.xml");
            }
  • 相关阅读:
    智慧北京04_自定义下拉刷新
    智慧北京03_菜单详情页_ViewPagerIndicator框架_页签详情页_事件处理
    (转发)RJcente,安卓常用工具
    (转发 )将Eclipse代码导入到Android Studio的两种方式
    智慧北京02_初步ui框架_ 主界面_viewPager事件_xUtils_slidingMenu_网络缓存_数据传递
    智慧北京01_splash界面_新手引导界面_slidingMenu框架_.主界面结构
    自定义控件进阶02_侧滑删除,粘性控件
    一个抽奖H5页面的记录
    分享一个情侣头像小程序,欢迎体验、拍砖
    iPhone X H5页面适配
  • 原文地址:https://www.cnblogs.com/snowball/p/536504.html
Copyright © 2011-2022 走看看