关于asp.net操作xml的问题
时间:2010-10-09
来源:互联网
<?xml version="1.0" encoding="utf-8" ?>
<siteconfig>
<WebSit id="网站名称">
<name>
网站名称
</name>
<default>
XXXX公司
</default>
<value>
</value>
</WebSit>
<webSit id="版权信息">
<name>
版权信息
</name>
<default>
@ 2010 XXXXinc.XXXXv1.0.0
</default>
<value>
</value>
</webSit>
</siteconfig>
xml结构如上
我想把xml读取到datatable 或者是dataset 中
dataset和datatable的列是根据xml创建的
我写了一段代码
感觉不是很好
public static DataTable GetData(string path, string tableName)
{
//创建XmlDocument类的实例
XmlDocument xmldoc = new XmlDocument();
//调用XmlDocument类中的Load()方法加载XML文件
xmldoc.Load(path);
//创建DataTable类型的变量dt
DataTable dt = new DataTable();
///获取根节点
XmlNode rootNode = xmldoc.SelectSingleNode("/" + tableName);
//判断节点及其子节点是否为空,为空将返空值
if (rootNode == null) return null;
if (rootNode.ChildNodes.Count <= 0) return null;
///创建保存记录的数据列
foreach (XmlNode XN in rootNode.ChildNodes[0].ChildNodes)
{
dt.Columns.Add(new DataColumn(XN.Name, typeof(string)));
}
///创新获取数据节点的XPath
string xmlPath = "/" + tableName;
//获取XML节点下的所有节点
XmlNodeList nodeList = rootNode.ChildNodes;
//遍历所有节点
foreach (XmlNode node in nodeList)
{
//创建数据表行,并在其中添加数据
DataRow row = dt.NewRow();
int i = 0;
foreach (DataColumn column in dt.Columns)
{ ///读取每一个属性
row[column.ColumnName] =node.ChildNodes[i].InnerText.Replace("\r\n","").Trim();
i++;
}
//将数据表行添加到数据表中
dt.Rows.Add(row);
}
//返回DataTable对象dt
return dt;
}
哪位高手给指点一下啊!
<siteconfig>
<WebSit id="网站名称">
<name>
网站名称
</name>
<default>
XXXX公司
</default>
<value>
</value>
</WebSit>
<webSit id="版权信息">
<name>
版权信息
</name>
<default>
@ 2010 XXXXinc.XXXXv1.0.0
</default>
<value>
</value>
</webSit>
</siteconfig>
xml结构如上
我想把xml读取到datatable 或者是dataset 中
dataset和datatable的列是根据xml创建的
我写了一段代码
感觉不是很好
public static DataTable GetData(string path, string tableName)
{
//创建XmlDocument类的实例
XmlDocument xmldoc = new XmlDocument();
//调用XmlDocument类中的Load()方法加载XML文件
xmldoc.Load(path);
//创建DataTable类型的变量dt
DataTable dt = new DataTable();
///获取根节点
XmlNode rootNode = xmldoc.SelectSingleNode("/" + tableName);
//判断节点及其子节点是否为空,为空将返空值
if (rootNode == null) return null;
if (rootNode.ChildNodes.Count <= 0) return null;
///创建保存记录的数据列
foreach (XmlNode XN in rootNode.ChildNodes[0].ChildNodes)
{
dt.Columns.Add(new DataColumn(XN.Name, typeof(string)));
}
///创新获取数据节点的XPath
string xmlPath = "/" + tableName;
//获取XML节点下的所有节点
XmlNodeList nodeList = rootNode.ChildNodes;
//遍历所有节点
foreach (XmlNode node in nodeList)
{
//创建数据表行,并在其中添加数据
DataRow row = dt.NewRow();
int i = 0;
foreach (DataColumn column in dt.Columns)
{ ///读取每一个属性
row[column.ColumnName] =node.ChildNodes[i].InnerText.Replace("\r\n","").Trim();
i++;
}
//将数据表行添加到数据表中
dt.Rows.Add(row);
}
//返回DataTable对象dt
return dt;
}
哪位高手给指点一下啊!
作者: illhf2008 发布时间: 2010-10-09
引用楼主 illhf2008 的回复:
<?xml version="1.0" encoding="utf-8" ?>
<siteconfig>
<WebSit id="网站名称">
<name>
网站名称
</name>
<default>
XXXX公司
</default>
<value>
</value>
</We……
<?xml version="1.0" encoding="utf-8" ?>
<siteconfig>
<WebSit id="网站名称">
<name>
网站名称
</name>
<default>
XXXX公司
</default>
<value>
</value>
</We……
问题补充
public static DataTable GetDataTable(string Path)
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
ds.ReadXml(Path);
dt = ds.Tables[0];
return dt;
}
这种方法 只返回一条数据呢
哪位高手给写个好的方法 谢谢了!
作者: illhf2008 发布时间: 2010-10-09
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28