Rumah pangkalan data tutorial mysql ASP.NET中的XML表单控件_MySQL

ASP.NET中的XML表单控件_MySQL

Jun 01, 2016 pm 02:11 PM
br case format public kawalan

导 读:介绍了有关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("rn");

    }



    // 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 + "" + value);

        outputQ.Append("rn");

    }



// ********************************** 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
        {

            outputXml.Append(t);

        }



        outputXml.Append(reader.Prefix + NodeType + "" + reader.Value);



        // Display the attributes values for the current node

        if (reader.HasAttributes)

        {

            outputXml.Append(" Attributes:");



            for (int j=0; j
            {

                outputXml.Append(reader[j]);

            }

        }

        outputXml.Append("rn");

    }



    /// ************************* 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" + "");

        }



        else

        {

            outputXml.Append("");

            if (XmlNodeType.Element == node.NodeType)

            {

                XmlNamedNodeMap map = node.Attributes;

                foreach (XmlNode attrnode in map)

                    outputXml.Append(" " + attrnode.Name + " ");

            }

            outputXml.Append("rn");

        }

    }

}





下面就是webform2.aspx了

webform2.aspx

                                ---

















 





test









   



 





 

   

   

   

 



 

   

   

   

 

XML Document:          FileName:
XPath Expression








 

 

 

   

   

 

Output from Query XML Data
Query Display:

                         Descriptive

                         XML

                        


 






   





   





       

       

       


 

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah perbezaan antara versi pembangun dan versi awam iOS? Apakah perbezaan antara versi pembangun dan versi awam iOS? Mar 01, 2024 pm 12:55 PM

Setiap tahun sebelum Apple mengeluarkan versi utama baharu iOS dan macOS, pengguna boleh memuat turun versi beta beberapa bulan lebih awal untuk mengalaminya terlebih dahulu. Memandangkan perisian ini digunakan oleh orang awam dan pembangun, Apple telah melancarkan versi pembangun dan awam, yang merupakan versi beta awam bagi versi beta pembangun, untuk kedua-duanya. Apakah perbezaan antara versi pembangun dan versi awam iOS? Secara literal, versi pembangun ialah versi ujian pembangun dan versi awam ialah versi ujian awam. Versi pembangun dan versi awam menyasarkan khalayak yang berbeza. Versi pembangun digunakan oleh Apple untuk ujian oleh pembangun Anda memerlukan akaun pembangun Apple untuk memuat turun dan meningkatkannya.

Kawalan editor teks kaya biasa dalam rangka kerja pembangunan web bahasa Go Kawalan editor teks kaya biasa dalam rangka kerja pembangunan web bahasa Go Jun 04, 2023 am 09:10 AM

Dengan populariti aplikasi web, editor teks kaya telah menjadi alat yang sangat diperlukan dalam pembangunan web. Apabila menggunakan bahasa Go untuk pembangunan web, kami juga perlu memilih kawalan editor teks kaya yang sesuai untuk memperkayakan tapak web dan aplikasi kami. Dalam artikel ini, kita akan membincangkan kawalan editor teks kaya biasa dalam pembangunan web bahasa Go. FroalaEditorFroalaEditor ialah kawalan editor teks kaya yang popular yang digunakan secara meluas dalam pembangunan web. ia mempunyai kemodenan

HMD Skyline mendapat pilihan warna baharu dan sarung magnet rasmi HMD Skyline mendapat pilihan warna baharu dan sarung magnet rasmi Aug 23, 2024 am 07:04 AM

Apabila HMD Skyline(tersedia di Amazon pada harga $499) dilancarkan bulan lepas, ia dikeluarkan dalam dua warna - Neon Pink dan Twisted Black. Mereka kini disertai oleh warna ketiga yang digelar Blue Topaz. HMD Global juga telah mengumumkan kes rasmi untuk ph

pembolehubah penghakiman kes suis pembolehubah penghakiman kes suis Feb 19, 2024 am 08:04 AM

Suis memerlukan contoh kod khusus untuk menentukan pembolehubah Dalam pengaturcaraan, kita selalunya perlu melakukan operasi yang berbeza berdasarkan nilai pembolehubah yang berbeza. Pernyataan suis ialah struktur mudah yang membolehkan anda memilih blok kod yang berbeza untuk pelaksanaan berdasarkan nilai pembolehubah. Berikut ialah contoh kod khusus yang menunjukkan cara menggunakan pernyataan kotak suis untuk menentukan nilai pembolehubah yang berbeza: #includeintmain(){

br是什么软件 br是什么软件 Dec 25, 2020 pm 03:06 PM

br是Adobe公司开发的一个组织工具程序,其全称是Adobe Bridge;br可以借助于编写ExtendScript脚本或使用内含的工作流程脚本示例将Adobe Creative Suite中各组件的繁重任务实现自动化。

PHP memformat tarikh/masa GMT/UTC PHP memformat tarikh/masa GMT/UTC Mar 21, 2024 am 10:41 AM

Artikel ini akan menerangkan secara terperinci cara memformat tarikh/masa GMT/UTC dengan PHP Editor berpendapat ia agak praktikal, jadi saya kongsikan dengan anda sebagai rujukan saya harap anda boleh memperoleh sesuatu selepas membaca artikel ini. Pengenalan kepada Memformat Tarikh/Masa GMT/UTC dalam PHP Memformat tarikh/masa GMT/UTC dalam PHP adalah penting untuk memaparkan dan mengendalikan tarikh zon silang masa dengan betul. Artikel ini akan menerangkan cara memformat tarikh/masa GMT/UTC menggunakan kelas DateTime PHP, serta pelbagai pilihan pemformatan yang tersedia. Kelas DateTime Kelas DateTime mewakili tarikh dan masa. Ia boleh menyimpan dan memanipulasi nilai tarikh/masa dalam zon waktu seperti GMT/UTC. Untuk mencipta Da baru

br在html里是什么 br在html里是什么 Feb 20, 2021 pm 02:32 PM

br在html中是一个换行标签,它用于在HTML文档中插入一个简单的换行符;在需要手动换行地方,加入“”即可实现内容换行。“”标签是一个空标签,意味着它没有结束标签。

Cara menggunakan kawalan panel Cara menggunakan kawalan panel Oct 10, 2023 am 09:36 AM

Langkah-langkah untuk menggunakan kawalan panel adalah untuk mula-mula mencipta kawalan Panel dan menetapkan lebar, ketinggian, warna latar belakang, warna sempadan, lebar dan padding sempadan, mencipta dua butang dan menambahnya pada kawalan Panel, dan akhirnya Tambah kawalan Panel ke borang tersebut.

See all articles