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

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

C# 代码
XmlDocument doc = new XmlDocument();
XmlNode head
= doc.CreateXmlDeclaration( " 1.0 " , " utf-8 " , "" );
doc.AppendChild(head);
XmlNode node
= doc.CreateElement( " configuration " );      
doc.AppendChild(node);
XmlNode nodeappSettings
= doc.CreateElement( " appSettings " );
nodeappSettings.InnerText
= "" ;
node.AppendChild(nodeappSettings);
doc.AppendChild(node);
doc.Save(Server.MapPath(
" ~/x.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 " ))
from:http://dotnet.aspx.cc/article/7b4c7a42-4cdf-40d1-b293-e86da109a34c/read.aspx

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值