简单生活 发表于 2015-1-16 22:23:01

ASP.NET网页设计利用XmlDocument读取XML节点一切数据

我见过java运行在手机上,包括很廉价的山寨手机,但是却暂时没发现.net在手机上有什么作为。wp7可能是个转机,但是按照《Java的跨平台就是一句谎言。那.net的跨平台也当之无愧是一句谎言。</p>网上有很多多少ASP.NET读取XML的例子,好比利用Dataset来读取,但本文教程倒是利用XmlDocument来读取XML节点下一切数据,我们先来看下这个XML格局:SysRightsDb.xml
XMLCode<?xmlversion="1.0"encoding="utf-8"?><root><rightsname="SYS"><xmlname="股票行情"code="stockmarket"></xml><xmlname="营业体系"code="sales"></xml><xmlname="客服体系"code="servcice"></xml><xmlname="财政体系"code="financial"></xml><xmlname="呼唤中央体系"code="callcenter"></xml><xmlname="报表体系"code="report"></xml></rights><rightsname="financial"><xmlname="定单办理"code="so_mana"></xml><xmlname="定单列表"code="so_list"></xml><xmlname="请求审计"code="so_audit_list"></xml><xmlname="权限列表"code="so_ur_sour_list"></xml></rights></root>从这个XML能够看下,我将利用ASP.NET读取权限体系中节点属性即是SYS下一切数据,及读取financial节点下一切数据。
这类XML数据格局让人看起来很明白就晓得所代表的意义,看起来也不错。
上面入手下手吧。
第1、起首创立读取XML类xmlHepler,内容以下:
先援用两个定名空间
usingSystem.Xml;
usingSystem.Collections;
xmlHeplerCode///<summary>///dodo///网站:www.xueit.com//////读取XML类///</summary>///<typeparamname="T"></typeparam>publicclassxmlHepler<T>:System.Web.UI.Page{Hashtabletable=newHashtable();TFileName;TRoot;//根节点TRootAttName;//节点属性称号TRootAttValue;//根节点属性值TField;//Xml字段///<summary>///XML文件路径///</summary>///<paramname="val"></param>publicxmlHepler(Tval){FileName=val;this.LoadXml(val.ToString());}///<summary>///XML文件路径///</summary>///<paramname="file"></param>privatevoidLoadXml(stringfile){XmlDocumentxdoc=newXmlDocument();xdoc.Load(file);table.Add("xml",xdoc);}///<summary>///前往XMLtoDataTable///</summary>///<returns></returns>publicDataTableGetXmlToDataTable(){string[]SplitField=Field.ToString().Split(",");//机关DataTableDataTabledt=newDataTable();DataColumndc=null;for(inti=0;i<SplitField.Length;i){dc=newDataColumn(SplitField);dt.Columns.Add(dc);}XmlDocumentxdoc=(XmlDocument)table["xml"];XmlNodeListxTable=xdoc.DocumentElement.SelectNodes(Root.ToString());foreach(XmlNodexnodeinxTable){if(xnode.Attributes.InnerText==RootAttValue.ToString())//某一节点{//该节点下一切子节点XmlNodeListxnlist=xnode.ChildNodes;//子节点一切数据for(inti=0;i<xnlist.Count;i)//for(inti=0;i<xnode.ChildNodes.Count;i)这句是一切xml子节点数据{DataRowdr=dt.NewRow();//绑定所需字段for(intj=0;j<SplitField.Length;j){dr]=xnode.ChildNodes.Attributes].Value;}dt.Rows.Add(dr);}}}returndt;}#region设置值///<summary>///根节点///</summary>publicTxmlRoot{get{returnRoot;}set{Root=value;}}///<summary>///节点属性字段称号///</summary>publicTxmlRootAttName{get{returnRootAttName;}set{RootAttName=value;}}///<summary>///节点属性字段值///</summary>publicTxmlRootAttValue{get{returnRootAttValue;}set{RootAttValue=value;}}///<summary>///子节点属性字段///</summary>publicTxmlSplitField{set{Field=value;}}#endregion}这个xmlHepler类利用DocumentElement.SelectNodes来选择XML节点,以后if(xnode.Attributes.InnerText==RootAttValue.ToString())猎取相干属性的节点.
利用办法GetXmlToDataTable()来机关DataTable,把XML节点下一切数据导进到DataTable。
这个类的源码关头的中央都写了正文,很复杂。
上面我们来看看怎样挪用此类:
在程序Page_Load测试挪用SysRightsDb.xml,并把相干数据显现出来。
源码以下:
挪用xmlHeplerCodeprotectedvoidPage_Load(objectsender,EventArgse){xmlHepler<string>xml=newxmlHepler<string>(Server.MapPath("SysRightsDb.xml"));xml.xmlRoot="rights";//挪用SYS节点下数据xml.xmlRootAttName="name";xml.xmlRootAttValue="SYS";xml.xmlSplitField="code,name";DataTabledt=xml.GetXmlToDataTable();Response.Write("<b>体系权限</b><br>");foreach(DataRowdrindt.Rows){Response.Write("name:"dr["name"].ToString()"code:"dr["code"].ToString());Response.Write("<br>");}//挪用financial节点下数据xml.xmlRootAttName="name";xml.xmlRootAttValue="financial";xml.xmlSplitField="code,name";dt=xml.GetXmlToDataTable();Utils.Response("<b>子体系权限</b><br>");foreach(DataRowdrindt.Rows){Response.Write("name:"dr["name"].ToString()"code:"dr["code"].ToString());Response.Write("<br>");}}嗯,到如今为此,很复杂就能够完成挪用XML节点数据了,最初看下最终效果:

教程对照短,多多交换!
归根到底,Java跨平台可以,但是要重新编写代码,否则还分什么J2EE/J2SE/J2ME呢!

老尸 发表于 2015-1-19 09:52:16

最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。

金色的骷髅 发表于 2015-1-28 05:59:10

JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。

灵魂腐蚀 发表于 2015-2-5 18:30:33

目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案.

小女巫 发表于 2015-3-3 16:36:17

微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。

再现理想 发表于 2015-3-11 12:19:38

代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。

admin 发表于 2015-3-18 14:15:27

主流网站开发语言之PHP:PHP的全名非常有趣,它是一个巢状的缩写名称——“PHP:HypertextPreprocessor”,打开缩写还是缩写。PHP是一种HTML内嵌式的语言(就像上面讲的ASP那样)。而PHP独特的语法混合了C,Java,Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。

柔情似水 发表于 2015-3-26 00:49:43

比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。
页: [1]
查看完整版本: ASP.NET网页设计利用XmlDocument读取XML节点一切数据