net 平台提供了这个类呀!!!数据源!!!!
dataset
dateadapter
datatablereadxml() writexml()
你看一下msdn,
把它的这一套东西看一下,没多少,而且msdn上还有例子呢
dataset
dateadapter
datatablereadxml() writexml()
你看一下msdn,
把它的这一套东西看一下,没多少,而且msdn上还有例子呢
※以下是引用楼主 sWinZ(死蚊子) 在2007-04-24 12:04:44 的发言:
──────────────────────────────────────────
忘了补充 要求效率 用 XmlReader 和 XmlWriter
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
你要想跟操作数据库那样就一定得用XmlDocument和XPath了,XmlReader根本就满足不了你的要求
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
为什么?虚心请教 举个例子
自己写一个解析.效率未必有XmlDocumnet高吧
那你不如直接用XMLDB,老美的产品
关于搜索 MSDN里写的很明白了
-----------
既然MSDN里面都写明白了
那我不明白你还问什么??
说来说去最主要的还是XPath查询语言的运用以及对它的理解,虽然W3C大力推荐DataSet,前面已经说了,他只能处理标准的二维表,所以它的局限性也就很大了(或许是我对DataSet了解的不够吧)
那我不明白你还问什么??
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━我要的是“类的基本框架”换句话说,你会sqlcon等等等,但你写过的程序有限,你能保证你封的类是相对比较完整的么?即使以后可以二次开发,但为什么第1次不尽量写好一点呢我的目的就是这个
说来说去最主要的还是XPath查询语言的运用以及对它的理解,虽然W3C大力推荐DataSet,前面已经说了,他只能处理标准的二维表,所以它的局限性也就很大了(或许是我对DataSet了解的不够吧)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
wangchao1982(飘零一剑)说的也很有道理我是想能不能在达成目的的情况下最大提升代码的执行效率PS:上面的帖子没说完,我的目的是综合大家的经验,写一个相对比较完整的类,而省去二次开发的时间与更改代码后,项目也要随之更改的弊端
这个不完善,但框架有了
主要是用大是XmlDocument XmlElement XmlNode等类
/// <summary>
///
/// </summary>
/// <param name="dt">要保存的DataTable数据</param>
/// <param name="filepath">此次任务下载内容的保存地址</param>
/// <param name="proxy">使用的代理组</param>
/// <param name="append">插入记录的类型true为追加:false为覆盖</param>
public void AddPlan(DataTable dt, string filepath, string proxy,bool append)
{
xmldoc.Load(patentDataPath);
bool isSave = false;
XmlNode plan_root = xmldoc.SelectSingleNode("plans"); XmlElement elepatents = xmldoc.CreateElement("patents");//创建专利列表
if (dt != null)
{
int a = dt.Rows.Count;
foreach (DataRow dr in dt.Rows)
{
XmlElement elepatent = xmldoc.CreateElement("patent");
elepatent.SetAttribute("col_pno", dr[0].ToString());
elepatent.SetAttribute("col_web", dr[1].ToString());
elepatent.SetAttribute("col_savedir", dr[3].ToString());
elepatent.SetAttribute("col_stime", dr[4].ToString());
elepatent.SetAttribute("col_utime", dr[5].ToString());
elepatent.SetAttribute("col_href", TrimSpecialChar(dr[6].ToString()));
elepatent.SetAttribute("col_state", dr[7].ToString());
//elepatent.SetAttribute("col_proxygroup", dr[8].ToString());
elepatent.InnerText = dr[2].ToString();
elepatents.AppendChild(elepatent);
// <patent ="" col_web="" col_savedir="" col_stime="" col_utime="" col_href="" col_state="" col_proxy="">pname</patent>
}//把datatable中的数据保存进列表
} foreach (XmlNode xn in plan_root.ChildNodes)
{
XmlElement ele_xn = (XmlElement)xn;
if (ele_xn.SelectSingleNode("filepath")!=null&&ele_xn.SelectSingleNode("filepath").InnerText.ToString().Equals(filepath))
{
if (!append)
{
xn.RemoveAll();
XmlElement elefilepath = xmldoc.CreateElement("filepath");
XmlElement eleproxygroup = xmldoc.CreateElement("proxygroup");
elefilepath.InnerText = filepath;
xn.AppendChild(elefilepath);
xn.AppendChild(eleproxygroup);
}
xn.AppendChild(elepatents);
plan_root.AppendChild(xn);
isSave = true;
}
}
if (!isSave) {
XmlElement ele_plan = xmldoc.CreateElement("plan");
XmlElement elefilepath = xmldoc.CreateElement("filepath");
XmlElement eleproxygroup = xmldoc.CreateElement("proxygroup"); elefilepath.InnerText = filepath; ele_plan.AppendChild(elefilepath);
ele_plan.AppendChild(eleproxygroup);
ele_plan.AppendChild(elepatents);
plan_root.AppendChild(ele_plan);
}
xmldoc.Save(patentDataPath);
}
方法三 :使用DataSet对象
<% @ Page Language="C#"%>
<% @ Import Namespace="System.Data"%>
<% @ Import Namespace="System.Data.OleDb"%>
<script language="C#" runat="server">
void Page_Load(Object sender,EventArgs e)
{
DataSet objDataSet=new DataSet();
objDataSet.ReadXml(Server.MapPath("grade.xml"));
dgEmployees.DataSource=objDataSet.Tables["student"].DefaultView;
dgEmployees.DataBind();
}
</script>
<body>
<h3><font face="Verdana">读取XML方法三</font></h3>
<asp:DataGrid id="dgEmployees" runat="server" />
</body>
</html> 详细出处参考:http://www.jb51.net/article/8865.htm
XML文件的读取1
XML文件格式如下:
<?xml version="1.0" encoding="utf-8"?>
<configure>
<config id="path" value="D:\新建文件夹" />
</configure>//xml文件所在路径
private readonly static string xmlFilePath = @"..\..\DvrOut\path.xml";
private readonly static XmlDocument document = new XmlDocument();/// <summary>
/// 获取XML中文件的保存路径
/// </summary>
/// <returns></returns>
public string GetPathByConfigid()
{
document.Load(xmlFilePath); string result = null;
foreach (XmlNode node in document["configure"])
{
if (node.Attributes["id"].Value.ToString() == "path")
{
result = node.Attributes["value"].Value.ToString();
}
}
return result;
}
/// <summary>
/// 设置XML中文件的保存路径
/// </summary>
/// <param name="text"></param>
public static void SetConfig(string text)
{
document.Load(xmlFilePath); foreach (XmlNode node in document["configure"])
{
if (node.Attributes["id"].Value.ToString() == "path")
{
node.Attributes["value"].Value = text;
}
}
document.Save(xmlFilePath);
}
XML文件读取方法2
XML文件如下:
<a>
<b>bbb </b>
<c>ccc </c>
</a>
读取b节点
public string readXml(string xmlpath, string element)//xmlpath是xml的文件名,element是你要查询的节点的名称,就是b
{
try
{
string value = "";
XmlDocument doc = new XmlDocument();
doc.Load(xmlpath);
XmlNode node = doc.SelectSingleNode("//" + element);
//如果a外层还有节点就改为(“//外节点//”+ element)
value = node.InnerText;
return value;
}
catch (Exception e)
{
return "";
}
}
XML文件读取方法3
XML文件如下:
<a>
<b1>
<c>ccc</c>
<d>ddd</d>
</b1>
<b2>
<e>eee</e>
<f>fff</f>
</b2>
</a>
private string GetInfoByXML(string xmlFilePath,string nodeName) // xmlFilePath是xml的文件名,nodeName是你要查询的节点的名称,就是c
{
document.Load(xmlFilePath);
string result = string.Empty;
try
{
XmlNodeList nodeList = document.SelectSingleNode("a").ChildNodes;
if (nodeList != null && nodeList[0].ChildNodes != null)
{
foreach (XmlNode xn in nodeList[0].ChildNodes)
{
if (xn.Name == nodeName)
{
result = xn.InnerText;
break;
}
}
}
return result;
}
catch (Exception ex)
{
}
}
本内容使用 CSDN小秘书 回复
每天回帖即可获得10分可用分!
**************************************************[/align]