在.net开发中经常需要读写xml形式的文件(app.config和web.config分别是WinForm和WebForm中使用到的xml文件的一个特列,并且微软提供了通用的方法,在此就不赘述了),.net类库提供了多种读写xml文件的方式,每一种方式都有其优点和缺点,因而有其实用性。
下面列出微软.net类库提供的读写xml文件个类及其特点:
类名称 |
优点 |
缺点 |
XmlReader |
快速、高效、可扩展 |
只读,只向前,需要人工验证 |
XmlDocument |
可往返、可读写、支持XPath筛选 |
比XmlReader慢 |
XPathNavigator |
可往返,支持XPath和XSLT |
只读 |
XPathDocument |
比XmlDocument,优化支持XPath和XSLT |
比XmlReader慢 |
本文提到的XmlReader也是微软类库中的一个类,它的特点是快速高效,并且可扩展,缺点是只读。
下面举例说明XmlReader的用法:
(一)用到的xml文件:meu.xml
<?xmlversion="1.0"encoding="utf-8"?>
<Menus>
<Menutitle="常用网址">
<itemname="天下网"url="http://www.netskycn.com"id="1"/>
<itemname="天下网生活论坛"url="http://life.netskycn.com"id="2"/>
<itemname="csdn"url="http://www.csdn.net"id="3"/>
<itemname="我的博客"url="http://blog.csdn.net/zhoufoxcn"id="4"/>
<itemname="百度"url="http://www.baidu.com"id="5"/>
<itemname="Google"url="http://www.google.cn"id="6"/>
<itemname="微软"url="http://www.microsoft.com"id="7"/>
</Menu>
<Menutitle="娱乐网址">
<itemname="奇虎"url="http://www.qihoo.com"id="12"/>
<itemname="网易"url="http://www.163.com"id="13"/>
<itemname="天涯"url="http://www.tianya.cn"id="14"/>
</Menu>
<Menutitle="安全网址">
<itemname="360"url="http://www.safe360.com"id="15"/>
<itemname="瑞星"url="http://www.rising.com.cn"id="16"/>
</Menu>
</Menus>
(二)读取并显示:ReadXml.aspx
<%@PageLanguage="C#"ContentType="text/html"ResponseEncoding="gb2312"%>
<%@ImportNamespace="System.Xml"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/>
<title>XMLReader实例</title>
</head>
<body>
<scriptrunat="server">
//首发地址:http://blog.csdn.net/zhoufoxcn/archive/2007/12/23/1961624.aspx
protectedvoidPage_Load(ObjectSrc,EventArgsE)
{
if(!IsPostBack)
{
XmlReaderxmlReader=XmlReader.Create(Server.MapPath("Menu.xml"));
while(xmlReader.Read())
{
Response.Write("<li>节点类型:"+xmlReader.NodeType+"==<br>");
switch(xmlReader.NodeType)
{
caseXmlNodeType.XmlDeclaration:
for(inti=0;i<xmlReader.AttributeCount;i++)
{
xmlReader.MoveToAttribute(i);
Response.Write("属性:"+xmlReader.Name+"="+xmlReader.Value+" ");
}
break;
caseXmlNodeType.Attribute:
for(inti=0;i<xmlReader.AttributeCount;i++)
{
xmlReader.MoveToAttribute(i);
Response.Write("属性:"+xmlReader.Name+"="+xmlReader.Value+" ");
}
break;
caseXmlNodeType.CDATA:
Response.Write("CDATA:"+xmlReader.Value+" ");
break;
caseXmlNodeType.Element:
Response.Write("节点名称:"+xmlReader.LocalName+"<br>");
for(inti=0;i<xmlReader.AttributeCount;i++)
{
xmlReader.MoveToAttribute(i);
Response.Write("属性:"+xmlReader.Name+"="+xmlReader.Value+" ");
}
break;
caseXmlNodeType.Comment:
Response.Write("Comment:"+xmlReader.Value);
break;
caseXmlNodeType.Whitespace:
Response.Write("Whitespace:"+" ");
break;
caseXmlNodeType.ProcessingInstruction:
Response.Write("ProcessingInstruction:"+xmlReader.Value);
break;
caseXmlNodeType.Text:
Response.Write("Text:"+xmlReader.Value);
break;
}
}
xmlReader.Close();
}
}
</script>
</body>
</html>
特别说明的是:menu.xml和ReadXml.aspx文件放在同一个文件夹下,如果实际情况与此不符,请根据实际情况更改。
以下是输出结果:
<quote></quote>
节点类型:XmlDeclaration==
属性:version=1.0属性:encoding=utf-8
节点类型:Whitespace==
Whitespace:
节点类型:Element==
节点名称:Menus
节点类型:Whitespace==
Whitespace:
节点类型:Element==
节点名称:Menu
属性:title=常用网址
节点类型:Whitespace==
Whitespace:
节点类型:Element==
节点名称:item
属性:name=天下网属性:url=http://www.netskycn.com属性:id=1
节点类型:Whitespace==
Whitespace:
节点类型:Element==
节点名称:item
属性:name=天下网生活论坛属性:url=http://life.netskycn.com属性:id=2
节点类型:Whitespace==
Whitespace:
节点类型:Element==
节点名称:item
属性:name=csdn属性:url=http://www.csdn.net属性:id=3
节点类型:Whitespace==
Whitespace:
节点类型:Element==
节点名称:item
属性:name=我的博客属性:url=http://blog.csdn.net/zhoufoxcn属性:id=4
节点类型:Whitespace==
Whitespace:
节点类型:Element==
节点名称:item
属性:name=百度属性:url=http://www.baidu.com属性:id=5
节点类型:Whitespace==
Whitespace:
节点类型:Element==
节点名称:item
属性:name=Google属性:url=http://www.google.cn属性:id=6
节点类型:Whitespace==
Whitespace:
节点类型:Element==
节点名称:item
属性:name=微软属性:url=http://www.microsoft.com属性:id=7
节点类型:Whitespace==
Whitespace:
节点类型:EndElement==
节点类型:Whitespace==
Whitespace:
节点类型:Element==
节点名称:Menu
属性:title=娱乐网址
节点类型:Whitespace==
Whitespace:
节点类型:Element==
节点名称:item
属性:name=奇虎属性:url=http://www.qihoo.com属性:id=12
节点类型:Whitespace==
Whitespace:
节点类型:Element==
节点名称:item
属性:name=网易属性:url=http://www.163.com属性:id=13
节点类型:Whitespace==
Whitespace:
节点类型:Element==
节点名称:item
属性:name=天涯属性:url=http://www.tianya.cn属性:id=14
节点类型:Whitespace==
Whitespace:
节点类型:EndElement==
节点类型:Whitespace==
Whitespace:
节点类型:Element==
节点名称:Menu
属性:title=安全网址
节点类型:Whitespace==
Whitespace:
节点类型:Element==
节点名称:item
属性:name=360属性:url=http://www.safe360.com属性:id=15
节点类型:Whitespace==
Whitespace:
节点类型:Element==
节点名称:item
属性:name=瑞星属性:url=http://www.rising.com.cn属性:id=16
节点类型:Whitespace==
Whitespace:
节点类型:EndElement==
节点类型:Whitespace==
Whitespace:
节点类型:EndElement==
分享到:
相关推荐
使用 XML Reader 读取 XML 文档,有多个XML Reader 读取 XML 文档的例子,适用于初学者。
Silverlight使用XmlReader读取XML并加载到TreeView
本文介绍了C#中使用XmlReader,只读、向前、循环读取XML节点的方法,并为我们列出、XmlReader类的方法、属性、枚举等成员,希望对大家学习有所帮助。
XmlReader读取Xml需要通过Read()实例方法,不断读取Xml文档中的声明,节点开始,节点内容,节点结束,以及空白等等,直到文档结束,Read()方法返回false。如下读取Xml内容实例代码和注释说明 代码如下:using System;...
主要介绍了PHP中使用xmlreader读取xml数据示例,本文示例相对简单,只包含了一个读取功能,需要的朋友可以参考下
用WC3的DOM实现对XML文件的读取。 方法摘要: //通过文件路径及文件名读取xml public XMLReader(String path, String filename); //初始化读取包下的的XML文件 public XMLReader(Package package1, String fileName)...
XmlReader和XmlTextReader类定义在System.XML名字空间中。 XmlTextReader类源于XmlReader类。XmlTextReader类可用来读取XML文档...在这篇文章里,将演示如何使用XmlTextReader类来读取一个XML文档及输出数据到控制台。
提供一款php xml读取类,很简单的一个xml分析类了,它可读取指它xml文档,并且输出或取得指定节点的xml数据,本xml类代码是利用了php domdocument来解析xml文档。
poi读取大文件Excel,使用xml格式解析,速度实测50mb文件13s,可指定sheet页内容,带工具类和测试类
NULL 博文链接:https://suky.iteye.com/blog/621169
里面有三个小例子:使用XmlReader读Xml;使用XmlWriter写Xml;通过XmlDocument读写Xml文档。
本文实例讲述了PHP使用XMLWriter读写xml文件操作。分享给大家供大家参考,具体如下: 米扑科技旗下的多个产品,需要脚本自动生成sitemap.xml,于是重新温习一遍PHP XML读写操作。 读写xml的方式,主要围绕XMLWriter...
用C#编程实现显示XML文件中信息的方法是使用.NET提供的标准类把XML文件内容读入一个StreamReader类对象中,再用XmlDatadocument类的DataSet读XML的方法去读XML信息到DataSet中,DataSet再以DataView的方式赋给一个Web...
\r\n 3.1.11 XML和ADO.NET\r\n 3.1.12 ASP.NET配置 \r\n 3.2 小结 \r\n第4章 用XmlReader和XmlWriter读写XML数据\r\n 4.1 XML的读取器和书写器\r\n 4.2 使用XmlReader类读取XML\r\n 4.2.1 XmlReader简介 ...
SimpleXMLReader, 包装的XMLReader类,用于对大型xml进行简单的SAX读取 简单的XML阅读器包装器XMLReader类,用于简单的英镑 SAX -reading ( 简单的XPath -queries ),代价为大。对其他xml库的内存使用的最小 ( 。...
W3C制定了XML DOM标准。很多编程语言中多提供了支持W3C XML...对于很大的XML文档,可以使用XmlReader类来读取。因为XmlReader使用Steam(流)来读取文件,所以不会对内存造成太大的消耗。下面就来看一下如何使用XmlDocu
MemoryStream对象提供了无需进行IO就可以创建Stream的方法,XmlTextWriter和XmlReader提供快速书写和读取XML内容的方法,结合MemoryStream,就可以直接在内存中构造XmlTextWriter,并用XmlReader进行读取。 使用...