1
基本思路
其实用
DataSet
操作
XML
,归根到底就是对
DataSet
里的表格,行,列等进行操作,然后用
DataSet
里的东西重新写到
XML
中,从而实现编辑
XML
的目的。如果再配合上
.xsd
文件的话,那效果更佳。
2
程序详解
(1) XML
文件内容
本类操作的
XML
和生成的
XML
格式是一样的,如下:
http://tempuri.org/xml_xmlDB.xsd”>
2 Asp.net
程序员
2
开发
B/S
结构程序
asp.net c#
等
建国路
XXX
2008-8-31
false
4
c#
程序员
2
开发
B/S
结构程序
asp.net c#
等
建国路
XXX
2008-8-31
false
然后点击
XML
文件右下角的
“
数据
”
,即可看到熟悉的表格形式,在表格的任意位置上单击右键选择
“
创建架构
”
,将会生成一个
.xsd
文件,该文件用来定义
XML
各列的类型。其内容如下
(
点击查看代码
2
附件
)
:
http://tempuri.org/xml_xmlDB.xsd” xmlns:mstns=”http://tempuri.org/xml_xmlDB.xsd”xmlns=”http://tempuri.org/xml_xmlDB.xsd” xmlns:xs=”http://www.w3.org/2001/XMLSchema” xmlns:msdata=”urn:schemas-microsoft-com:xml-msdata”attributeFormDefault=”qualified” elementFormDefault=”qualified”> msdata:Locale=”zh-CN” msdata:EnforceConstaints=”False”>?msdata:AutoIncrement=”true” msdata:AutoIncrementStep=”1″msdata:AutoIncrementSeed=”1″ />
注意:如果想像数据库一样有一个自动增长的
ID
字段,则可以这样操作:
首先在
XML
中添加一个元素,这样生成
.xsd
的时候,就会有一个
ID
段,在
.xsd
中选中
ID
这一列,在右边的属性中,将
“AutoIncrementSeed”
和
“AutoIncrementStep”
分别设置为
1
,这样
ID
就会从
1
开始以步长为
1
自动增长。
以上代码如果看不懂并不要紧,因为我们可以通过
DataSet
来生成这种格式的内容。接下来将开始操作
XML
。
(2)
处理
XML
文件路径
这里主要是对传入的
XML
路径进行处理,如果传入的是相对路径,则返回完整路径,如果传入的是完整路径,则不做处理直接返回。方法如下:
#region GetXmlFullPath
///
///
返回完整路径
///
/// Xml
的路径
///
public static string GetXmlFullPath(string strPath)
{
//
如果路径中含有
:
符号,则认定为传入的是完整路径
if(strPath.IndexOf(“:”) > 0)
{
return strPath;
}
else
{
//
返回完整路径
return System.Web.HttpContext.Current.Server.MapPath(strPath);
}
}
#endregion
(3)
读取记录
读取
XML
的数据到
DataSet
中的方法为:
#region GetDataSetByXml
///
///
读取
xml
直接返回
DataSet
///
/// xml
文件相对路径
///
public static DataSet GetDataSetByXml(string strXmlPath)
{
try
{
DataSet ds = new DataSet();
//
读取
XML
到
DataSet
ds.ReadXml(GetXmlFullPath(strXmlPath));
if(ds.Tables.Count > 0)
{
return ds;
}
return null;
}
catch(Exception)
{
return null;
}
}
#endregion
以上方法将得到一个
DataSet
,里面保存的是全部
XML
记录的信息,而且没有经过任何处理。但很多时候我们需要的只是一些满足条件的记录,这时需要用以下方法得到:
#region GetDataViewByXml
///
〈
summary
〉
///
读取
Xml
返回一个经排序或筛选后的
DataView
///
〈
/summary
〉
///