创建、查询、修改带名称空间的 XML 文件的例子

XML的应用越来越广泛了,如Vista、Flex编程都将使用 XML,正确掌握XML的各种操作,对提高编程效率至关重要。下面就是一个综合处理带名称空间的XML的例子。

protected void Page_Load(object sender, EventArgs e)
    
{
        
string w3NameSpace = "http://www.w3.org/2000/xmlns/";
        System.Xml.XmlDocument doc 
= new System.Xml.XmlDocument();

        
//创建根节点
        System.Xml.XmlNode root = doc.CreateNode(System.Xml.XmlNodeType.Element, "w""wordDocument""http://schemas.microsoft.com/office/word/2003/2/wordml");
        System.Xml.XmlAttribute xa;
        xa 
= doc.CreateAttribute("xmlns""v", w3NameSpace);
        xa.Value 
= "urn:schemas-microsoft-com:vml";
        root.Attributes.Append(xa);

        
//为节点添加属性
        xa = doc.CreateAttribute("xmlns""w10", w3NameSpace);
        xa.Value 
= "urn:schemas-microsoft-com:office:word";
        root.Attributes.Append(xa);

        xa 
= doc.CreateAttribute("xmlns""SL", w3NameSpace);
        xa.Value 
= "http://schemas.microsoft.com/schemaLibrary/2003/2/core";
        root.Attributes.Append(xa);

        xa 
= doc.CreateAttribute("xmlns""aml", w3NameSpace);
        xa.Value 
= "http://schemas.microsoft.com/aml/2001/core";
        root.Attributes.Append(xa);

        xa 
= doc.CreateAttribute("xmlns""wx", w3NameSpace);
        xa.Value 
= "http://schemas.microsoft.com/office/word/2003/2/auxHint";
        root.Attributes.Append(xa);

        xa 
= doc.CreateAttribute("xmlns""o", w3NameSpace);
        xa.Value 
= "urn:schemas-microsoft-com:office:office";
        root.Attributes.Append(xa);

        xa 
= doc.CreateAttribute("xmlns""dt", w3NameSpace);
        xa.Value 
= "uuid:C2F41010-65B3-11d1-A29F-00AA00C14882";
        root.Attributes.Append(xa);

        xa 
= doc.CreateAttribute("xmlns""space", w3NameSpace);
        xa.Value 
= "preserve";
        root.Attributes.Append(xa);

        
//为节点增加值
        System.Xml.XmlNode body = doc.CreateNode(System.Xml.XmlNodeType.Element, "v""body""urn:schemas-microsoft-com:vml");
        System.Xml.XmlNode childNode 
= doc.CreateNode(System.Xml.XmlNodeType.Element, "o""t""urn:schemas-microsoft-com:office:office");
        childNode.InnerText 
= "欢迎光临【孟宪会之精彩世界】";

        
//添加到内存树中
        body.AppendChild(childNode);
        root.AppendChild(body);
        doc.AppendChild(root);

        
//添加节点声明
        System.Xml.XmlDeclaration xd = doc.CreateXmlDeclaration("1.0""UTF-8""yes");
        doc.InsertBefore(xd, doc.DocumentElement);

        
//添加处理指令
        System.Xml.XmlProcessingInstruction spi = doc.CreateProcessingInstruction("mso-application""progid=\"Word.Document\"");
        doc.InsertBefore(spi, doc.DocumentElement);

        
//查询节点
        System.Xml.XmlNamespaceManager nsmanager = new System.Xml.XmlNamespaceManager(doc.NameTable);
        nsmanager.AddNamespace(
"w""http://schemas.microsoft.com/office/word/2003/2/wordml");
        nsmanager.AddNamespace(
"v""urn:schemas-microsoft-com:vml");
        nsmanager.AddNamespace(
"o""urn:schemas-microsoft-com:office:office");
        System.Xml.XmlNode node 
= doc.SelectSingleNode("w:wordDocument/v:body/o:t", nsmanager); //关键的nsmanager
        Response.Write(node.InnerText);

        node.InnerText 
= "欢迎光临【孟宪会之精彩世界】:http://dotnet.aspx.cc/";

        
//创建CDATA节点
        System.Xml.XmlCDataSection xcds = doc.CreateCDataSection("<a href='http://dotnet.aspx.cc/'>【孟宪会之精彩世界】</a>");
        node.ParentNode.InsertAfter(xcds, node);

        Response.Write(xcds.InnerText);

        doc.Save(Server.MapPath(
"test.xml"));

    }

posted on 2007-11-28 19:18  执法长老  阅读(259)  评论(0编辑  收藏  举报

导航