瑞鲁手机APP下载网_专注推荐好用的手机APP和游戏APP

创建用于ASP.NET的分页程序控件 基于ASP.NET的Web动态控件创建

ASP.NET中的XML表单控件

查看人次:1摘自:瑞鲁手机APP

导 读:介绍了有关ASP.NET中XML控件的使用,有个小BUG:在WEBFORM.ASPX中出现的XML控件,其中的transformsource属性设定了样式表文件路径,可是在文章出处没有找到这个XSL文件.:( 自己解决吧. 在这个代码中揭示了微软在ASP.NET架构中隐藏的一个WEB表单控件,即

,我只给代码,不给解释,大家自己下课后去研究吧。 另外,由于是beta1,在这个控件中你使用的xslt里面不能使用,当然,亦不能使用那个order-by了,因为它支持的xsl空间是带"1999"的那个,而不是原来的那个。 另外,我从微软得到的回答就是在beta2里面,它将支持,就可以全部转向xml+xsl了,而不用再为源代码保密问题头疼了。 请看下例: webform2.cs                                 - using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Text; using System.IO; using System.Xml; public class WebForm2 : Page {     public StringBuilder outputQ;     public StringBuilder outputXml;       public DocumentNavigator nav = null;     public HtmlInputFile XmlFile;          public System.Web.UI.WebControls.Xml MyXml;     public System.Web.UI.WebControls.TextBox TextBox1;             public System.Web.UI.WebControls.TextBox TextBox2;     public System.Web.UI.WebControls.TextBox TextBox3;             public System.Web.UI.WebControls.Button Query;     public System.Web.UI.WebControls.Label FileLabel;        public void On_KeyUp(object sender, System.EventArgs e)     {         Response.Write("Works");     }     protected void Page_Load(object sender, EventArgs e)     {         if (!IsPostBack)         {             //             // Evals true first time browser hits the page             //         }     }     public void Query_Click(object sender, System.EventArgs e)     {         HttpPostedFile xmlfile = XmlFile.PostedFile;          XmlDocument doc = new XmlDocument();              MyXml.Document = new XmlDocument();     //        TextBox2.Text=""; //        TextBox3.Text="";         if (xmlfile.FileName != String.Empty)         {             try             {                 FileLabel.Text= xmlfile.FileName;                 MyXml.Document.Load(xmlfile.FileName);                 outputXml = new StringBuilder();                 XmlTextReader reader = new XmlTextReader (xmlfile.FileName);                 ShowDocument();                 TextBox3.Text = outputXml.ToString();                 outputQ = new StringBuilder();                 doc.Load(xmlfile.FileName);                 DocumentNavigator nav = new DocumentNavigator(doc);                 // Perform the query e.g. "descendant::book/price"                 XPathQuery(nav, TextBox1.Text);                 TextBox2.Text = outputQ.ToString();             }             catch (Exception exp) {                 //outputQ.Append(""+ exp.Message+"");             }             finally {}         }         else if (FileLabel.Text != String.Empty)         {             try             {                 MyXml.Document.Load(FileLabel.Text);                 outputXml = new StringBuilder();                 XmlTextReader reader = new XmlTextReader (FileLabel.Text);                 ShowDocument();                 TextBox3.Text = outputXml.ToString();                 ShowDocument();                 outputQ = new StringBuilder();                 doc.Load(FileLabel.Text);                 DocumentNavigator nav = new DocumentNavigator(doc);                 // Perform the query e.g. "descendant::book/price"                 XPathQuery(nav, TextBox1.Text);                 TextBox2.Text = outputQ.ToString();             }             catch (Exception exp) {                 outputQ.Append(""+ exp.Message+"");             }             finally {}         }     }     private void XPathQuery(XmlNavigator navigator, String xpathexpr )     {         try         {             // Save context node position             navigator.PushPosition();             navigator.Select (xpathexpr);             FormatXml(navigator);             // Restore context node position             navigator.PopPosition();                 }         catch (Exception e)         {         }     }      //***************************** Navigator ************************************     private void FormatXml (XmlNavigator navigator)     {         while (navigator.MoveToNextSelected())         {             switch (navigator.NodeType)             {             case XmlNodeType.ProcessingInstruction:                 Format (navigator, "ProcessingInstruction");                 break;             case XmlNodeType.DocumentType:                 Format (navigator, "DocumentType");                 break;             case XmlNodeType.Document:                 Format (navigator, "Document");                 break;             case XmlNodeType.Comment:                 Format (navigator, "Comment");                 break;             case XmlNodeType.Element:                 Format (navigator, "Element");                 break;             case XmlNodeType.Text:                 Format (navigator, "Text");                 break;             case XmlNodeType.Whitespace:                 Format (navigator, "Whitespace");                 break;             }         }         outputQ.Append("\r\n");     }     // Format the output     private void Format (XmlNavigator navigator, String NodeType)     {         String value = String.Empty;         String name = String.Empty;         if (navigator.HasChildren)         {             name = navigator.Name;             navigator.MoveToFirstChild();             if (navigator.HasValue)             {                 value = navigator.Value;             }         }         else         {             if (navigator.HasValue)             {                 value = navigator.Value;                 name = navigator.Name;             }         }         outputQ.Append(NodeType + "<" + name + ">" + value);         outputQ.Append("\r\n");     } // ********************************** XmlReader *****************************     public void ShowDocument ()     {         outputXml = new StringBuilder();         XmlTextReader reader = new XmlTextReader (FileLabel.Text);         while (reader.Read())         {             switch (reader.NodeType)             {             case XmlNodeType.ProcessingInstruction:                 Format (reader, "ProcessingInstruction");                 break;             case XmlNodeType.DocumentType:                 Format (reader, "DocumentType");                 break;             case XmlNodeType.Comment:                 Format (reader, "Comment");                 break;             case XmlNodeType.Element:                 Format (reader, "Element");                 break;             case XmlNodeType.Text:                 Format (reader, "Text");                 break;             case XmlNodeType.Whitespace:                 break;             }         }         TextBox3.Text = outputXml.ToString();     }     protected void Format(XmlReader reader, String NodeType)     {         // Format the output         for (int i=0; i < reader.Depth; i++)         {             outputXml.Append('\t');         }         outputXml.Append(reader.Prefix + NodeType + "<" + reader.Name + ">" + reader.Value);         // Display the attributes values for the current node         if (reader.HasAttributes)         {             outputXml.Append(" Attributes:");             for (int j=0; j < reader.AttributeCount; j++)             {                 outputXml.Append(reader[j]);             }         }         outputXml.Append("\r\n");     }     /// ************************* DOM *********************************     protected void ShowDocument(XmlNode node)     {         if (node != null)             Format (node);         if (node.HasChildNodes)         {             node = node.FirstChild;             while (node != null)             {                 ShowDocument(node);                 node = node.NextSibling;             }         }     }     // Format the output     private void Format (XmlNode node)     {         if (!node.HasChildNodes)         {            outputXml.Append("\t" + "<" + node.Value + ">");         }         else         {             outputXml.Append("<" + node.Name + ">");             if (XmlNodeType.Element == node.NodeType)             {                 XmlNamedNodeMap map = node.Attributes;                 foreach (XmlNode attrnode in map)                     outputXml.Append(" " + attrnode.Name + "<" + attrnode.Value + "> ");             }             outputXml.Append("\r\n");         }     } } 下面就是webform2.aspx了 webform2.aspx                                 --- <%@ import="" namespace="System"> <%@ import="" namespace="System.IO"> <%@ assembly="" name="System.Xml"> <%@ import="" namespace="System.Xml"> <%@ page="" language="C#" inherits="WebForm2" src="WebForm2.cs" debug="true">   

相关文摘:ASP技巧 windows
标题名称:《创建用于ASP.NET的分页程序控件 基于ASP.NET的Web动态控件创建》
本文网址:https://www.sdruilu.cn/news/tpart-29586.html