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

本文转自【孟子E章】http://blog.csdn.net/net_lover/archive/2006/12/18/1447434.aspx

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

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);
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 " ));

 VB.NET:

Dim  w3NameSpace  As   String   =   " http://www.w3.org/2000/xmlns/ "
Dim  doc  As  System.Xml.XmlDocument  =   New  System.Xml.XmlDocument
Dim  root  As  System.Xml.XmlNode  =  doc.CreateNode(System.Xml.XmlNodeType.Element,  " w " " wordDocument " " http://schemas.microsoft.com/office/word/2003/2/wordml " )
Dim  xa  As  System.Xml.XmlAttribute
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)
Dim  body  As  System.Xml.XmlNode  =  doc.CreateNode(System.Xml.XmlNodeType.Element,  " v " " body " " urn:schemas-microsoft-com:vml " )
Dim  childNode  As  System.Xml.XmlNode  =  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)
Dim  xd  As  System.Xml.XmlDeclaration  =  doc.CreateXmlDeclaration( " 1.0 " " UTF-8 " " yes " )
doc.InsertBefore(xd, doc.DocumentElement)
Dim  spi  As  System.Xml.XmlProcessingInstruction  =  doc.CreateProcessingInstruction( " mso-application " " progid=""Word.Document"" " )
doc.InsertBefore(spi, doc.DocumentElement)
Dim  nsmanager  As  System.Xml.XmlNamespaceManager  =   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 " )
Dim  node  As  System.Xml.XmlNode  =  doc.SelectSingleNode( " w:wordDocument/v:body/o:t " , nsmanager)
Response.Write(node.InnerText)
node.InnerText 
=   " 欢迎光临【孟宪会之精彩世界】:http://dotnet.aspx.cc/ "
Dim  xcds  As  System.Xml.XmlCDataSection  =  doc.CreateCDataSection( " <a href='http://dotnet.aspx.cc/'>【孟宪会之精彩世界】</a> " )
node.ParentNode.InsertAfter(xcds, node)
Response.Write(xcds.InnerText)
doc.Save(Server.MapPath(
" test.xml " ))

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值