仅剩的50分,求一个当把XML文件作为数据库使用时,C#操作XML的类(基本框架也可以(就是所有实现该功能会涉及到的方法原形))万分感谢

sWinZ 2007-04-24 11:52:06
仅剩的50分,

求一个当把XML文件作为数据库使用时,

C#操作XML的类

注意:是把XML文件作为数据库使用时所独有的类,而不仅仅是简单操作XML的类

(基本框架也可以(就是所有实现该功能会涉及到的方法原形))

万分感谢
...全文
910 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
billsquall 2011-01-30
  • 打赏
  • 举报
回复
linq to xml
打一壶酱油 2011-01-30
  • 打赏
  • 举报
回复
同求一下
nanwang314 2011-01-30
  • 打赏
  • 举报
回复
关注中.......
wy811007 2011-01-30
  • 打赏
  • 举报
回复
过来学习 19L那个不错的说.
huameng6 2011-01-29
  • 打赏
  • 举报
回复
mark
weakey 2011-01-05
  • 打赏
  • 举报
回复
好贴子,得留名。
whowhen21 2011-01-05
  • 打赏
  • 举报
回复
这里有对XML完全操作的例子,仅供参考
**************************************************
本内容使用 CSDN小秘书 回复
每天回帖即可获得10分可用分!
**************************************************
Mark1- 2011-01-05
  • 打赏
  • 举报
回复
学习了!
hejialin666 2010-03-19
  • 打赏
  • 举报
回复

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)
{
}
}

卧_槽 2010-03-19
  • 打赏
  • 举报
回复
xml.linq
这个东西很好
坐看昀起 2010-03-19
  • 打赏
  • 举报
回复

方法三 :使用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

sunshine21c 2010-03-19
  • 打赏
  • 举报
回复
(ˇˍˇ) 学习了
LoveCleverDog 2007-04-25
  • 打赏
  • 举报
回复
给2个例子 自己看一下
主要是用大是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);
}
cuitaocrazy 2007-04-25
  • 打赏
  • 举报
回复
http://www.codeproject.com/cs/database/xmlclient.asp
这个不完善,但框架有了
Fan52027 2007-04-24
  • 打赏
  • 举报
回复
sWinZ 2007-04-24
  • 打赏
  • 举报
回复
关于搜索 MSDN里写的很明白了
RexZheng 2007-04-24
  • 打赏
  • 举报
回复
没有Xpath你怎么做搜索之类的功能?
自己写一个解析.效率未必有XmlDocumnet高吧
zhqf820828 2007-04-24
  • 打赏
  • 举报
回复
up
sWinZ 2007-04-24
  • 打赏
  • 举报
回复
你要想跟操作数据库那样就一定得用XmlDocument和XPath了,XmlReader根本就满足不了你的要求
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
为什么?虚心请教 举个例子
RexZheng 2007-04-24
  • 打赏
  • 举报
回复
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
※以下是引用楼主 sWinZ(死蚊子) 在2007-04-24 12:04:44 的发言:
──────────────────────────────────────────
忘了补充 要求效率 用 XmlReader 和 XmlWriter
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
你要想跟操作数据库那样就一定得用XmlDocument和XPath了,XmlReader根本就满足不了你的要求
加载更多回复(7)

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧