动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ ASP技巧 ]的信息

本月文章推荐
.介绍一种效率极高的分类算法.
.用排序串字段实现树状结构(例程.
.ASP关于动态数据显示页面得锚点.
.处理驱动器和文件夹.
.ASP注册表项目修改 .
.将html源代码规范化,转换成XSL代.
.Web网站的错误控制.
.灵活实用的页面广告实例.
.转换文本为超联和Email格式的代码.
.怎样在ASP里面创建统计图表.
.为ASP开发者介绍ColdFusion.
.用排序串字段实现树状结构(例程.
.ASP中实现小偷程序的原理和简单.
.ASP程序中使用断开的数据记录集.
.一个asp快速字符串连接类.
.利用ASP+JMAIL进行邮件群发的新思.
.ServerVariables 对路径的操作.
.使用组件搜索.
.ASP与存储过程实践(实例) .
.存储过程对页面访问速度的影响.

ASP.NET中的XML表单控件

发表日期:2001-3-26 |


导 读:介绍了有关ASP.NET中XML控件的使用,有个小BUG:在WEBFORM.ASPX中出现的XML控件,其中的transformsource属性设定了样式表文件路径,可是在文章出处没有找到这个XSL文件.:( 自己解决吧.
在这个代码中揭示了微软在ASP.NET架构中隐藏的一个WEB表单控件,即<asp:xml runat=server/>,我只给代码,不给解释,大家自己下课后去研究吧。
另外,由于是beta1,在这个控件中你使用的xslt里面不能使用<xsl:sort>,当然,亦不能使用那个order-by了,因为它支持的xsl空间是带"1999"的那个,而不是原来的那个。
另外,我从微软得到的回答就是在beta2里面,它将支持<xsl:sort>,就可以全部转向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("</xmp><font color=\"#FF6600\">"+ exp.Message+"</font><xmp>");
            }
            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("</xmp><font color=\"#FF6600\">"+ exp.Message+"</font><xmp>");
            }
            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" %>

<HTML><HEAD>

  <script runat="server" language="C#">
    // Put page script here
        public void On_KeyUp(object sender, System.EventArgs e)
    {
        Response.Write("Works");
    }

  </script>

<!--<link REL="STYLESHEET" HREF="default.css" TYPE="text/css">-->
<TITLE>test</TITLE>
</HEAD>

<BODY   >

    
<form method="post" action="WebForm2.aspx" runat="server" enctype="multipart/form-data">
  
<div align="left">
<table>
  <tr>
    <td>XML Document:</td>
    <td><input type=file id="XmlFile" runat=server>         FileName:</td>
    <td><asp:label id="FileLabel" runat="server"></asp:label></td>
  </tr>

  <tr>
    <td>XPath Expression</td>
    <td><asp:textbox id=TextBox1 runat="server" Height="20" Width="300" text=".//text()"
OnKey_Up="On_KeyUp"></asp:textbox></td>
    <td><asp:button type=submit OnClick="Query_Click" runat="server" Height="20" Width="91"
text="Query"></asp:button></td>
  </tr>
</table>

</br>
<table>
  <tr><td>Output from Query</td><td>XML Data</td><tr>
  <tr><td>Query Display: <asp:dropdownlist runat="server">
                         <asp:listitem>Descriptive</asp:listitem>
                         <asp:listitem>XML</asp:listitem>
                         </asp:dropdownlist>
  </td><tr>
  <tr>
    <td width="50%" valign="top" align="left"><asp:textbox id=TextBox2 runat="server" Height="400"
Width="350" TextMode="MultiLine" Rows="10"></asp:textbox></td>
    <td width="50%" valign="top" align="left"><asp:xml id="MyXml" transformsource="test.xsl"
runat=server/></asp:xml></td>
  </tr>
</table>
</div>

    <td><asp:textbox id=TextBox3 runat="server" Height="1" Width="5" TextMode="MultiLine"
Rows="110"></asp:textbox></td>

</form>
    
</BODY>
</HTML>
上一篇:ASP.NET中使用多个runat=server form 人气:9233
下一篇:IIS 处理 SEARCH 请求漏洞 人气:9101
浏览全部的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-8-27 风讯dotNETCMS v1.0 SP3 SQL/ACC
2008-8-27 风讯dotNETCMS v1.0 SP3 源码
2008-8-27 时尚DJ舞曲小偷 v3.0
2008-8-27 多用户QQ空间播放器
2008-8-27 非零坊幽默短信 v3.3
2008-8-27 Pcook CRM客户资源管理系统 v2.0
2008-8-27 乐铺网店系统免费普及版 v3.40
2008-8-27 非零坊个人作品管理 v3.1
2008-8-27 凹丫丫简单会员信息管理系统
2008-8-23 Mini WinMount V0.4
2008-8-23 Vista优化大师3.11正式版
2008-8-23 Wine 1.13
2008-8-23 KlipFolio 5.0 Build 5899-80
2008-8-23 Windows Sysinternals Desktops
2008-8-23 OneTap Movies1.2破解版
2008-8-23 AnnotaterPDF阅读1.1.503 破解版
2008-8-23 SoundMeter分贝测量仪 v1.0汉化破
2008-8-23 iDrum音乐节拍1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | Html转换js | js/vbs加密 | md5加密 | 进制转换
实用工具:汉字翻译拼音 | 符号对照表 | 个税计算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵