XML读取数据同步
2011-06-22 15:22
309 查看
一、数据源
<?xml version="1.0" encoding="gb2312" ?>
<课表>
<班级>
<班级编号>3564</班级编号>
<班级名称>二星口语精品班</班级名称>
<课程名称>考级考证培训</课程名称>
<课程类别>计划开班-周末班</课程类别>
<课程介绍>昂立少儿是上海市通用外语考试办公室授权的08考点。昂立少儿培训讲师都是由通用考试考官授课,思路清、讲得活、互动强、通过率高,主要帮助考生熟悉考试题型,了解考试形式,掌握考试
技巧,在原有英语听力、口语基础上提高。该考试是目前全市最权威的青少年口语考试,含金量高,得到本市各学校认可,该证书可为学生提供升学帮助。</课程介绍>
<学习目标></学习目标>
<适合对象></适合对象>
<价格>2200</价格>
<优惠价>2200</优惠价>
<师资></师资>
<教材></教材>
<学时>11</学时>
<开班时间>2011-05-22</开班时间>
<上课时间>周日10:00-12:00</上课时间>
<校区>周浦校区</校区>
</班级>
</课表>
二、处理代码
using System.Xml;
string strUrl=this.TextBox1.Text.Trim();
if(strUrl==string.Empty){
Comm.Alert("请添加一个有效的xml文件");
return;
}
int PIN=DateTime.Now.Month*100+DateTime.Now.Day; //当天操作标识
DateTime now1=DateTime.Now;//开始操作时间
XmlTextReader reader=new XmlTextReader(strUrl);
SortedList Class=new SortedList(); //保存读取的课表数据
SortedList Nodes=new SortedList();//经过对应转换的课表数据
string NodeName="",NodeValue="",NodeEnd="";
while(reader.Read()){
switch(reader.NodeType){
case XmlNodeType.Element:
//如果出现</>
if(Comm.IsNullOrEmpty(Class[NodeName.Trim()])){
Class.Add(NodeName.Trim(),"");
}
NodeName=reader.Name;
break;
case XmlNodeType.Text:
NodeValue=Comm.ToSql(reader.Value);
break;
case XmlNodeType.CDATA:
NodeValue=Comm.ToSql(reader.Value);
break;
case XmlNodeType.EndElement:
NodeEnd=reader.Name;
break;
}
if(reader.NodeType==XmlNodeType.Element && NodeName=="班级")
{
//一条记录结束
NodeName="";
NodeValue="";
NodeEnd="";
Class.Clear();
}
else if((reader.NodeType==XmlNodeType.Text || reader.NodeType== XmlNodeType.CDATA) && NodeName!="")
{
if(!Comm.IsNullOrEmpty(NodeValue.Trim()))
{
Class.Add(NodeName.Trim(),NodeValue.Trim());
}
}
else if(reader.NodeType==XmlNodeType.EndElement && NodeEnd=="班级")
{
NodeCount++; //总记录数增加
Nodes.Clear();
//开始收集信息
Nodes.Add("ClassId",Class["班级编号"].ToString());
.....
//数据操作
}
}
<?xml version="1.0" encoding="gb2312" ?>
<课表>
<班级>
<班级编号>3564</班级编号>
<班级名称>二星口语精品班</班级名称>
<课程名称>考级考证培训</课程名称>
<课程类别>计划开班-周末班</课程类别>
<课程介绍>昂立少儿是上海市通用外语考试办公室授权的08考点。昂立少儿培训讲师都是由通用考试考官授课,思路清、讲得活、互动强、通过率高,主要帮助考生熟悉考试题型,了解考试形式,掌握考试
技巧,在原有英语听力、口语基础上提高。该考试是目前全市最权威的青少年口语考试,含金量高,得到本市各学校认可,该证书可为学生提供升学帮助。</课程介绍>
<学习目标></学习目标>
<适合对象></适合对象>
<价格>2200</价格>
<优惠价>2200</优惠价>
<师资></师资>
<教材></教材>
<学时>11</学时>
<开班时间>2011-05-22</开班时间>
<上课时间>周日10:00-12:00</上课时间>
<校区>周浦校区</校区>
</班级>
</课表>
二、处理代码
using System.Xml;
string strUrl=this.TextBox1.Text.Trim();
if(strUrl==string.Empty){
Comm.Alert("请添加一个有效的xml文件");
return;
}
int PIN=DateTime.Now.Month*100+DateTime.Now.Day; //当天操作标识
DateTime now1=DateTime.Now;//开始操作时间
XmlTextReader reader=new XmlTextReader(strUrl);
SortedList Class=new SortedList(); //保存读取的课表数据
SortedList Nodes=new SortedList();//经过对应转换的课表数据
string NodeName="",NodeValue="",NodeEnd="";
while(reader.Read()){
switch(reader.NodeType){
case XmlNodeType.Element:
//如果出现</>
if(Comm.IsNullOrEmpty(Class[NodeName.Trim()])){
Class.Add(NodeName.Trim(),"");
}
NodeName=reader.Name;
break;
case XmlNodeType.Text:
NodeValue=Comm.ToSql(reader.Value);
break;
case XmlNodeType.CDATA:
NodeValue=Comm.ToSql(reader.Value);
break;
case XmlNodeType.EndElement:
NodeEnd=reader.Name;
break;
}
if(reader.NodeType==XmlNodeType.Element && NodeName=="班级")
{
//一条记录结束
NodeName="";
NodeValue="";
NodeEnd="";
Class.Clear();
}
else if((reader.NodeType==XmlNodeType.Text || reader.NodeType== XmlNodeType.CDATA) && NodeName!="")
{
if(!Comm.IsNullOrEmpty(NodeValue.Trim()))
{
Class.Add(NodeName.Trim(),NodeValue.Trim());
}
}
else if(reader.NodeType==XmlNodeType.EndElement && NodeEnd=="班级")
{
NodeCount++; //总记录数增加
Nodes.Clear();
//开始收集信息
Nodes.Add("ClassId",Class["班级编号"].ToString());
.....
//数据操作
}
}
相关文章推荐
- C# 读取XML中的数据信息内容的方法
- XML数据读取与创建
- 如何动态读取xml中的数据的?
- 数据库读取xml数据放在数据库表中
- 简单的从数据库中读取数据自动生成XML
- SQLServer 读取XML类型的节点数据
- 两个Repeater嵌套实现动态菜单(ado.net+sql和xml+Linq两种读取数据方式)
- JQuery读取XML文件数据并显示的实现代码
- Android入门学习笔记(一)|基础知识|文件数据存储读取|解析XML
- Android利用Soap读取WebService并且解析XML的DataSet数据
- 读取xml文件中的数据示例
- Extjs 数据读取对象ArrayReader/JsonReader/XmlReader
- php通过正则表达式记取数据来读取xml的方法
- ASP.NET读取XML某节点所有数据返回DataTable的实例
- SerialPort 同步和异步数据读取
- 读写xml所有节点个人小结 和 读取xml节点的数据总结
- android 读取 AndroidManifest.xml 中的数据:版本号、应用名称、自定...
- 读写xml所有节点个人小结 和 读取xml节点的数据
- 数据库和XML数据读取性能比较。
- WCF:读取 XML 数据时,超出最大字符串内容长度配额 (8192)。通过更改在创建 XML 读取器时所使用的 XmlDictionaryReaderQuotas 对象的 MaxStringContentLength 属性,可增加此配额。