开发者社区> 科技小先锋> 正文

读取xml文件的方式(29)

简介:
+关注继续查看
xml(可扩展标记语言)在网络开发中经常用到,也是各种数据交换的标准,在web程序中应用越来越广 泛,可以通过xml来实现配置管理、传递对象和数据等。在asp.net中读取一个xml文件主要有以下几种方式:利用xml控件,使用Dom技术。使用 xmltextreader类,或者利用dataset对象。首先添加命名空间:
using System.Xml.Linq; 
using System.Xml;
  1. 使用xml控件读取xml文件
默认主页源代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="xml._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>读取xml文件</title>
</head>
<body>
<h2>利用控件读取xml文件</h2>
<form id="form1" runat="server" method ="post">
<div>
<asp:Xml ID="Xml1" runat="server" DocumentSource="~/XMLFile1.xml"></asp:Xml>
</div>
</form>
</body>
</html>

效果图:
神舟龙
2.使用Dom技术读取xml文件
xmldocument类来读取xml文件,将整个待读取的xml文件在内存中通过xml解析器生成Dom。然后通过xml控件的document 属性赋值,或通过节点的相对位置来选择节点并显示或处理数据。
给xml文件控件的document属性赋值
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
XmlDocument xd=new XmlDocument();
string xmlpath=Server.MapPath("~/XMLFile1.xml");
xd.Load(@xmlpath);
this.Xml1.Document = xd;

xmldocument类可以通过节点的childnodes属性来获取所有子节点,而每个子节点又可以通过xmlnode类来表示。
代码:
 protected void Page_Load(object sender, EventArgs e)
{
XmlNode node;
XmlDocument xd=new XmlDocument();//定义一个xmldocument对象
string xmlpath=Server.MapPath("~/XMLFile1.xml");//加载xml文件
xd.Load(@xmlpath);
XmlElement tree = xd.DocumentElement;
for (int i = 0; i < tree.ChildNodes.Count; i++)//对根子节点的所有子节点进行循环
{
node=tree.ChildNodes[i];
if (node.HasChildNodes)//判断是否还有子节点
{
string content = "";
for (int j = 0; j < node.ChildNodes.Count; j++)
{
XmlNode childnode = node.ChildNodes[j];
content += childnode.Name + childnode.InnerText + "&nbsp;&nbsp;";
}
}
Content+="</br>";
Response.Write(Content);//输出
}
}

3.通过xmltextreader类来读取xml文档,现在设计页面拖放一个table控件
实例代码:
 protected void Page_Load(object sender, EventArgs e)
{

string xmlpath=Server.MapPath("~/XMLFile1.xml");//定义xml对象
XmlTextReader xtr=new XmlTextReader (@xmlpath );//声明一个xmltextreader对象xtr
TableRow tr=new TableRow ();
while (xtr.Read())//调用xml文件的读方法
{
if (xtr.NodeType == XmlNodeType.Text)//判断当前是否为文本
{
TableCell tc = new TableCell();
tc.Text = xtr.Value;
tr.Cells.Add(tc);
}
if (xtr.NodeType == XmlNodeType.EndElement && xtr.Name == "student")//判断当前是否为student节点结束标记,若是,则将前面构建的数据行添加表table1.,并初始化对象tr
{
this.Table1.Rows.Add(tr);
tr = new TableRow();
}

}
xtr.Close();
}

效果图:
效果

4.在读取xml文档时,可以借助dataset作为中间桥梁,将xml文档读入到数据集中,然后通过数据表操作方法对xml包含的数据进行处理, 下列程序是读取xml文档学号>002的信息
代码:
protected void Page_Load(object sender, EventArgs e)
{

string xmlpath=Server.MapPath("~/XMLFile1.xml");//定义xml对象
DataSet ds = new DataSet();//创建数据集对象
ds.ReadXml(@xmlpath);//利用readxml方法读取xml文件
DataView dv=ds.Tables[0].DefaultView;//定义数据视图对象
dv.RowFilter = "学号>=002";//根据条件筛选
this.GridView1.DataSource = dv;//在空间gridview中显示
this.GridView1.DataBind();
}

效果图:
表

本文转自shenzhoulong  51CTO博客,原文链接:http://blog.51cto.com/shenzhoulong/333199,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
开源 SPL 助力 JAVA 处理公共数据文件(txt \csv \ json \xml \xls)
开源 SPL 助力 JAVA 处理公共数据文件(txt \csv \ json \xml \xls)
13 0
读取META-INF下的xml文件
读取META-INF下的xml文件
15 0
COCO转VOC代码:将coco格式的json文件转换为voc格式的xml文件
COCO转VOC代码:将coco格式的json文件转换为voc格式的xml文件
26 0
如何将xml文件转txt (xml指定提取)
如何将xml文件转txt (xml指定提取)
26 0
mybatis xml文件热加载实现
本文博主给大家带来一篇 mybatis xml 文件热加载的实现教程,自博主从事开发工作使用 Mybatis 以来,如果需要修改 xml 文件的内容,通常都需要重启项目,因为不重启的话,修改是不生效的,Mybatis 仅仅会在项目初始化的时候将 xml 文件加载进内存。
102 0
Eclipse MyBatis1.4.2 generatorConfig 默认不生成XML文件,加了type="XMLMAPPER"也不起作用,解决方法
今天下载了最新的mybatis插件,生成不了XML文件,然后是一堆java注解文件,还有一堆报错。心头各种不爽,网上搜了很久,都是很旧的帖子,根据解决不了问题。最后自己在官网找到了答案,以后大家在搜索找不到答案,还是自己到官网翻文档吧! MyBatis 的官网generatorConfig说明如下: http://mybatis.org/generator/configreference/xmlconfig.html
94 0
Mybatis在xml文件中处理大于号小于号的方法
Mybatis在xml文件中处理大于号小于号的方法
60 0
开源SPL助力JAVA处理公共数据文件(txt/csv/json/xml/xsl)
开源SPL助力JAVA处理公共数据文件(txt/csv/json/xml/xsl)
2108 0
XML格式的感兴趣区文件转为ROI格式
本文介绍在ENVI软件中,将用户自行绘制的.xml格式的感兴趣区(ROI)文件转换为.roi格式的方法~
53 0
【IntelliJ IDEA】idea中的插件之一:Free Mybatis plugin跳转插件的使用(方便在Dao接口和Mappper XML文件之间进行切换)
之前使用MyBatis框架或者是在IDEA中,发现Mapper接口和XML文件之间跳转十分的麻烦,我之前经常的操作是在Mapper接口中将接口名称复制一下,然后去查找对应的XML文件,打开后CRTL+F查找对应的xml实现,整个过程效率很低下,搜了搜果然有前辈已经出了一款IDEA的插件解决了这个问题,把这个好用的跳转插件推荐给大家。
364 0
+关注
科技小先锋
文章
问答
视频
文章排行榜
最热
最新
相关课程
更多
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载