首页
关于我们
服务项目
作品展示
服务支持
联系我们
友情链接
网站地图
 您当前位置:网络学院 -> 编程开发系-> 编程开发-> Asp.net教程
Asp.Net对Xml文件的操作
作者:admin 来源:网络
日期: 2007-2-27
站内搜索
文章页数:[1] 

最近在用.NET做一个Java软件的接口,其中开发过程中涉及不少对Xml文档的操作,借助微软的MSDN和自己的使用经验,现简单介绍一下ASP.NET中对XML文档的操作。

一、 XML文档

我们大家都知道,XML是"Extensible Markup Language"的缩写,即可扩展标记语言。它是Internet环境中跨平台的、依赖于内容的技术,是这个时代中处理分布式结构信息的选择工具。在W3C组织领导下的工作小组发展并支持XML技术,使用它来简化通过Internet的文档信息传输。

XML文档分为两类:有效的XML文档以及简化格式的XML文档。

一个简化格式的XML文档必须遵从下面几个原则:

l 至少有一个元素

l 遵守XML规范

l 根元素(比如上面例子中的<Mail>)应该不被其他元素所包含

l 适当的元素嵌套是必须的

l 属性值应该在问号内

l 除了保留实体外,所有的实体都要声明

有效XML

有效XML文档指的是那些拥有一个DTD参考文件的XML文档。一个有效XML文档至少必须首先是简化格式的XML文档。跟随这个文档的DTD文件的有效性促进了XML执行程序的运行以及文档在兼容XML浏览器中的显示。

XML文档举例

例子1 - 一个简化格式的XML文档:

<?xml version="1.0" standalone="no"?>

<Mail>

<From>Author</From>

<To>Receiver</To>

<Date> Thu, 7 Oct 1999 11:15:16 -0600</Date>

<Subject>XML Introduction</Subject>

<body><p>Thanks for reading<Br/>

this article</p>

<br/>

<p>Hope you enjoyed this article</p>

</body>

</Mail>

第1行是XML声明,其中version属性指明了XML的版本,standalone属性等于"no"表示标记声明不独立于文档内部。XML声明可以看做是"运行指令"。尽管这个声明不是必须的,但是最好包含它,这将提高文档的灵活性。

例子2 - 一个遵守mail.dtd文件的有效XML文档。Date元素被省略,因为在mail.dtd中它是可选的。 元素 P 具有justify属性。Body和P元素间是Comments文本:

<?xml version="1.0" standalone="no"?>

<!DOCTYPE Mail system "http://infowest.com/DTDS/mail.dtd">

<Mail>

<From>Author</From>

<To>Receiver</To>

<Cc>Receiver2</Cc>

<Subject>XML Introduction</Subject>

<body>Comments:<p align="justify">Thanks for reading<Br/>

this article</p>

<br/>

<p>Hope you enjoyed this article</p>

</body>

</Mail>

例子3 -一个遵守mail.dtd文件的有效XML文档,存在Date 元素和Cc 元素,P元素拥有属性right:

<?xml version="1.0" standalone="no"?>

<!DOCTYPE Mail system "http://infowest.com/DTDS/mail.dtd">

<Mail>

<From>Author</From>

<To>Receiver</To>

<Cc>Receiver2</Cc>

<Date> Thu, 7 Oct 1999 11:15:16 -0600</Date>

<Subject>XML Introduction</Subject>

<body>Comments:<p align = "right" >Thanks for reading<Br/>

this article</p>

<br/>

<p>Hope you enjoyed this article</p>

</body>

</Mail>

XML 文档可以含有注释信息,注释的语法与HTML相似。除了"--"字符串外,任何文本信息都可以放置在标记<-- 和 -->之间。处理指令PI(Processing instruction)可以嵌入到文档中, PI的数据成分可以被处理进程所识别。

创作者也许希望包含一些不被解析器解析的代码。这些代码可以放置到忽略代码段中。可忽略的代码段具备如下的语法:

<[CDATA[被忽略的文字信息]]>

简言之,忽略代码段要以<[CDATA[ and end with ]]> 开始。

二、 ASP.NET对XML文档的操作

在对XML文档有一定的基础了解后,我们再来看一下ASP.NET中对XML文档操作最常用的类——XmlDocument。它使用起来非常容易,XmlDocument 其实就是一个简单的树。

使用类XmlDocument之前,我们须引用命名空间System.Xml。

下面我们来看一下,对Xml文件添加的结点的代码:

第37行代是加载已定义的Xml文档,XmlDocument有两种加载Xml文档的方法,Load()方法加载指定的 XML 数据,LoadXml()方法从指定的字符串加载 XML 文档。

XmlNode表示 XML 文档中的单个节点。

下面我们再来看一段删除结点的程序:

这些都是对Xml文档结点的操作,下面我们再来看一下如何访问Xml文档中的各结点。

XmlDocument Doc_Detail = new XmlDocument();

Doc_Detail.Load (Server.MapPath(“XmlFile.Xml”));

XmlNode Node1 = Doc_Detail.SelectSingleNode("vlink/object");

XmlNodeList Node2 = Node1.SelectNodes("member");

Hashtable tb = new Hashtable();

for (int j = 0; j < Node2.Count; j++)

{

switch(Node2[j].SelectSingleNode("name").InnerText.ToString())

{

case "blackPhoneNumber":

{

string BlackPhoneNum = Node2[j].SelectSingleNode("value").SelectSingleNode("string").InnerText.ToString();

tb.Add("BlackPhoneNum", BlackPhoneNum);

break;

}

case "reason":

{

string Reason = Node2[j].SelectSingleNode("value").SelectSingleNode("string").InnerText.ToString();

tb.Add("Reason", Reason);

break;

}

case "active":

{

string Active = Node2[j].SelectSingleNode("value").SelectSingleNode("boolean").InnerText.ToString();

tb.Add("Active", Active);

break;

}

}

}

这段代码实现了将一个Xml文档转化为HashTable结构的数据集。这些只是ASP.NET中对Xml文档操作的一小部分功能,ASP.NET 2.0提供操作XML文档的功能是相当强大的,希望大家看了这篇文章后能得到点启发。

文章页数:[1] 
放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·在Asp.net用C#建立动态Excel
·ASP.NET中常用的js代码
·asp.net2.0如何加密数据库联接字符串
·ASP.NET数据库编程快速入门之技术慨述
·投票结果的图片进度条显示
·ASP.NET 程序中常用的三十三种代码
·ASP.NET:页面缓存
·细节决定成败 ASP.NET中的蝴蝶效应
·.NET 2.0数据绑定原理
·让ASP.NET简便使用SCRIPT
最新文章
·使ASP.NET中的数据库操作变得简单
·ASP.NET中文件上传下载方法集合
·ASP.NET 程序中常用的三十三种代码
·ASP.NET数据库编程快速入门之技术慨述
·ASP.NET 2.0 中的创建母版页
·ASP.NET 2.0中创建内容页
·ASP.NET2.0数据库入门之SqlDataSource
·投票结果的图片进度条显示
·在Asp.net用C#建立动态Excel
·VS2005和ASP.NET2.0中使用强类型数据
相关主题
版权申明:除部分特别声明不要转载,或者授权本站独家播发的文章外,大家可以自由转载本站的原创文章,但原作者和来自本站的链接必须保留(非本站原创的,按照原来自一节,自行链接)。文章版权归本站和作者共有。
转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去本站水印。
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
发表评论  打印  刷新  推荐给朋友  返回顶部  关闭

网上大名: