仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 617|回复: 7
打印 上一主题 下一主题

[学习教程] ASP.NET网站制作之asp.net操纵xml完成创立,增加,删除,...

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-16 22:28:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
因为各系统的API不同,代码调用API编写程序就会遇到很多不兼容的地方,比如Java改写后的Serv-U就不能在手机上执行,手机的游戏也不能直接在微机上执行。xml文件格局以下是援用片断:
<?xmlversion="1.0"?>
<dbGuest>
<User>
<Nameuid="d">ew</Name>
<City>dsa</City>
<Email>eq</Email>
</User>
</dbGuest>
创立XML文件
以下是援用片断:
privatevoidbtnCreateXml_Click(objectsender,System.EventArgse)
{
//创立XML文档工具
System.Xml.XmlDocumentxmldoc=newSystem.Xml.XmlDocument();
//创立xml声明节点
System.Xml.XmlNodexmlnode=xmldoc.CreateNode(System.Xml.XmlNodeType.XmlDeclaration,"","");
//增加上述创立和xml声明节点
xmldoc.AppendChild(xmlnode);
//创立xmldbGuest元素(根节点)
System.Xml.XmlElementxmlelem=xmldoc.CreateElement("","dbGuest","");

xmldoc.AppendChild(xmlelem);
try
{
xmldoc.Save(xmlFile);
}
catch(Exceptionex)
{
if(ex.Message.IndexOf("会见被回绝")!=-1)
{
lblMsg.Text="创立xml文档失利,没有写进权限,请反省xmldocs文件夹的写进权限!";
return;
}
}
lblMsg.Text="xml文件创立乐成";
BindXMLFiles();
GetXmlContent();
BindUserNames();

}
增加用户:
以下是援用片断:
privatevoidbtnAdd_Click(objectsender,System.EventArgse)
{
stringuID=txtUID.Text;
stringuserName=txtUserName.Text;
stringCity=txtCity.Text;
stringEmail=txtEmail.Text;
if(!System.IO.File.Exists(xmlFile))
{
lblMsg.Text="xml文件"+xmlFile+"不存在,请先点击创立!";
return;
}
XmlDocumentxmlDoc=newXmlDocument();
xmlDoc.Load(xmlFile);//加载文件
XmlNoderoot=xmlDoc.SelectSingleNode("dbGuest");//查找<dbGuest>
XmlElementxe_dbGuest_User=xmlDoc.CreateElement("User");//创立一个<User>节点
XmlElementxe_dbGuest_User_Name=xmlDoc.CreateElement("Name");
xe_dbGuest_User_Name.InnerText=userName;//设置文本节点

XmlAttributea=xmlDoc.CreateAttribute("uid");//创立一个属性
a.Value=uID;
xe_dbGuest_User_Name.Attributes.Append(a);//增添一个属性
xe_dbGuest_User.AppendChild(xe_dbGuest_User_Name);//增加到<User>节点中
XmlElementxe_dbGuest_User_City=xmlDoc.CreateElement("City");//创立City节点
xe_dbGuest_User_City.InnerText=City;
xe_dbGuest_User.AppendChild(xe_dbGuest_User_City);//增加到<User>节点中
XmlElementxe_dbGuest_User_Email=xmlDoc.CreateElement("Email");//创立Email节点
xe_dbGuest_User_Email.InnerText=Email;
xe_dbGuest_User.AppendChild(xe_dbGuest_User_Email);

root.AppendChild(xe_dbGuest_User);//增加到<dbGuest>节点中
xmlDoc.Save(xmlFile);//保留文件
lblMsg.Text="乐成增加用户";
GetXmlContent();
BindXML();
BindUserNames();
}
//绑定xml数据
privatevoidBindXML()
{
if(!System.IO.File.Exists(xmlFile))
{
lblMsg.Text="xml文件"+xmlFile+"不存在,请先点击创立!";
return;
}
//办法一:经由过程ds读取xml
//DataSetds=newDataSet();
//ds.ReadXml(xmlFile);
//if(ds.Tables.Count>0)
//{
//dgValue.DataSource=ds.Tables[0].DefaultView;
//dgValue.DataBind();
//}
//办法二
DataTabledt=newDataTable();
DataColumndc=newDataColumn("uid");
dt.Columns.Add(dc);
dc=newDataColumn("name");
dt.Columns.Add(dc);
dc=newDataColumn("city");
dt.Columns.Add(dc);
dc=newDataColumn("email");
dt.Columns.Add(dc);

//将xml文件加载成xmlDoc
XmlDocumentxmlDoc=newXmlDocument();
xmlDoc.Load(xmlFile);
//失掉dbGust一切子节点
XmlNodeListxnl=xmlDoc.SelectSingleNode("dbGuest").ChildNodes;

for(inti=0;i<xnl.Count;i++)
{
//在每一个子节点是遍历xn代表的是一个个User
stringuid=xnl.Item(i).ChildNodes[0].Attributes["uid"].Value;
stringname=xnl.Item(i).ChildNodes[0].InnerText;
stringcity=xnl.Item(i).ChildNodes[1].InnerText;
stringemail=xnl.Item(i).ChildNodes[2].InnerText;
DataRowdr=dt.NewRow();
dr[0]=uid;
dr[1]=name;
dr[2]=city;
dr[3]=email;
dt.Rows.Add(dr);
}
dgValue.DataSource=dt;
dgValue.DataBind();


}
删除用户:
以下是援用片断:
privatevoidbtnDelete_Click(objectsender,System.EventArgse)
{
stringselectName=ddlNames.SelectedItem.Text;
stringselectID=ddlNames.SelectedValue;
XmlDocumentxmlDoc=newXmlDocument();
xmlDoc.Load(xmlFile);
XmlNodeListxnl=xmlDoc.SelectSingleNode("dbGuest").ChildNodes;


for(inti=0;i<xnl.Count;i++)
{
XmlElementxe=(XmlElement)xnl;//第i个dbGust子节点
XmlNodeListnode=xe.GetElementsByTagName("Name");
if(node.Count>0)
{
//判别为用户选择的
if(node[0].InnerText==selectName&&node[0].Attributes["uid"].Value==selectID)
{
stringm=node[0].InnerText;
xmlDoc.SelectSingleNode("dbGuest").RemoveChild(node[0].ParentNode);//删除该User节点
//xe.RemoveAll();//删除该节点的全体内容这二种有不同

break;

}

}
}


xmlDoc.Save(xmlFile);
BindXML();
GetXmlContent();
BindUserNames();
}
更新用户:
以下是援用片断:
privatevoidbtnUpdate_Click(objectsender,System.EventArgse)
{
stringselectName=ddlNames.SelectedItem.Text;
stringselectID=ddlNames.SelectedValue;
XmlDocumentxmlDoc=newXmlDocument();
xmlDoc.Load(xmlFile);
XmlNodeListnodeList=xmlDoc.SelectSingleNode("dbGuest").ChildNodes;//猎取dbGuest节点的一切子节点
foreach(XmlNodexninnodeList)//遍历一切子节点
{
XmlElementxe=(XmlElement)xn;//将子节点范例转换为XmlElement范例

XmlNodeListnode=xe.GetElementsByTagName("Name");
if(node.Count>0)
{
//判别为用户选择的
if(node[0].InnerText==selectName&&node[0].Attributes["uid"].Value==selectID)
{
XmlNodeListnls=xe.ChildNodes;//持续猎取xe子节点的一切子节点
foreach(XmlNodexn1innls)//遍历
{
XmlElementxe2=(XmlElement)xn1;//转换范例
if(xe2.Name=="Email")//假如找到Email属性
{
xe2.InnerText="http://eflylab.cnblogs.com";//则修正
break;//找到加入来就能够了
}
}
break;
}
}

}
xmlDoc.Save(xmlFile);
BindXML();
GetXmlContent();
}
查询用户:
以下是援用片断:
privatevoidbtnSelect_Click(objectsender,System.EventArgse)
{
XmlDocumentdoc=newXmlDocument();
doc.Load(xmlFile);
stringselectName=ddlNames.SelectedItem.Text;
stringemail=doc.SelectSingleNode("//User[Name=’"+selectName+"’]").ChildNodes.Item(2).InnerText;


lblMsg.Text="查询"+selectName+"用户email为"+email;
}
在VC.net的版本上,为了让C++运行在.NETFramework中,微软为C++引进了托管,就是托管C++(ManagedC++),这个根本就没有流行起来,自托管C++产生以后就没有收到过好评。
老尸 该用户已被删除
沙发
发表于 2015-1-19 14:14:23 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
莫相离 该用户已被删除
板凳
发表于 2015-1-26 15:13:04 | 只看该作者
使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
不帅 该用户已被删除
地板
发表于 2015-2-4 17:20:15 | 只看该作者
关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。
深爱那片海 该用户已被删除
5#
发表于 2015-2-10 05:09:16 | 只看该作者
通过这次激烈的讨论,我从大家身上学到了太多,开阔了眼界,不管是支持我的还是骂我的,都感谢你们。
透明 该用户已被删除
6#
发表于 2015-2-28 21:03:35 | 只看该作者
ASP.NET:ASP.net是Microsoft.net的一部分,作为战略产品,不仅仅是ActiveServerPage(ASP)的下一个版本;它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。
飘灵儿 该用户已被删除
7#
发表于 2015-3-17 05:52:07 | 只看该作者
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
8#
 楼主| 发表于 2015-3-23 22:36:48 | 只看该作者
是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 21:17

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表