Maison base de données tutoriel mysql ASP.NET中的XML表单控件_MySQL

ASP.NET中的XML表单控件_MySQL

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

导 读:介绍了有关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

                        


 






   





   





       

       

       


 

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelle est la différence entre la version développeur et la version publique d'iOS ? Quelle est la différence entre la version développeur et la version publique d'iOS ? Mar 01, 2024 pm 12:55 PM

Chaque année, avant qu'Apple ne publie une nouvelle version majeure d'iOS et de macOS, les utilisateurs peuvent télécharger la version bêta plusieurs mois à l'avance pour en faire l'expérience en premier. Étant donné que le logiciel est utilisé à la fois par le public et par les développeurs, Apple a lancé des versions développeur et publique, qui sont des versions bêta publiques des versions bêta développeur, pour les deux. Quelle est la différence entre la version développeur et la version publique d’iOS ? Littéralement parlant, la version développeur est une version bêta développeur et la version publique est une version bêta publique. La version développeur et la version publique ciblent des publics différents. La version développeur est utilisée par Apple pour les tests par les développeurs. Vous avez besoin d'un compte développeur Apple pour la télécharger et la mettre à niveau.

Contrôles courants de l'éditeur de texte enrichi dans le cadre de développement Web en langage Go Contrôles courants de l'éditeur de texte enrichi dans le cadre de développement Web en langage Go Jun 04, 2023 am 09:10 AM

Avec la popularité des applications Web, les éditeurs de texte enrichi sont devenus un outil indispensable au développement Web. Lorsque nous utilisons le langage Go pour le développement Web, nous devons également choisir un contrôle d'éditeur de texte enrichi approprié pour enrichir nos sites Web et nos applications. Dans cet article, nous aborderons les contrôles courants de l’éditeur de texte enrichi dans le développement Web en langage Go. FroalaEditorFroalaEditor est un contrôle d'éditeur de texte enrichi populaire largement utilisé dans le développement Web. il a de la modernité

HMD Skyline obtient une nouvelle option de couleur et un boîtier magnétique officiel HMD Skyline obtient une nouvelle option de couleur et un boîtier magnétique officiel Aug 23, 2024 am 07:04 AM

Lorsque le HMD Skyline (disponible sur Amazon au prix de 499 $) a été lancé le mois dernier, il est sorti en deux couleurs : Neon Pink et Twisted Black. Ils sont désormais rejoints par une troisième couleur baptisée Blue Topaz. HMD Global a également annoncé un dossier officiel en faveur du ph

Quel logiciel est br Quel logiciel est br Dec 25, 2020 pm 03:06 PM

br est un programme d'outils d'organisation développé par Adobe. Son nom complet est Adobe Bridge ; br peut automatiser les tâches ardues de chaque composant d'Adobe Creative Suite en écrivant des scripts ExtendScript ou en utilisant les exemples de scripts de flux de travail inclus.

variable de jugement de cas de changement variable de jugement de cas de changement Feb 19, 2024 am 08:04 AM

Switchcase nécessite des exemples de code spécifiques pour déterminer les variables. En programmation, nous devons souvent effectuer différentes opérations basées sur différentes valeurs de variables. L'instruction switchcase est une structure pratique qui vous permet de sélectionner différents blocs de code à exécuter en fonction de la valeur d'une variable. Ce qui suit est un exemple de code spécifique qui montre comment utiliser l'instruction switchcase pour déterminer différentes valeurs de variables : #includeintmain(){

PHP formate une date/heure GMT/UTC PHP formate une date/heure GMT/UTC Mar 21, 2024 am 10:41 AM

Cet article expliquera en détail comment formater une date/heure GMT/UTC avec PHP. L'éditeur pense que c'est assez pratique, je le partage donc avec vous comme référence. J'espère que vous pourrez gagner quelque chose après avoir lu cet article. Introduction au formatage de la date/heure GMT/UTC en PHP En PHP, le formatage de la date/heure GMT/UTC est crucial pour afficher et gérer correctement les dates entre fuseaux horaires. Cet article explique comment formater une date/heure GMT/UTC à l'aide de la classe DateTime de PHP, ainsi que les différentes options de formatage disponibles. Classe DateTime La classe DateTime représente une date et une heure. Il peut stocker et manipuler les valeurs de date/heure dans des fuseaux horaires tels que GMT/UTC. Pour créer un nouveau Da

Qu'est-ce que br en HTML Qu'est-ce que br en HTML Feb 20, 2021 pm 02:32 PM

br est une balise de saut de ligne en HTML, qui est utilisée pour insérer un simple saut de ligne dans le document HTML lorsque des sauts de ligne manuels sont requis, l'ajout de "<br>" peut obtenir des sauts de ligne de contenu. La balise "<br>" est une balise vide, ce qui signifie qu'elle n'a pas de balise de fermeture.

Comment utiliser le contrôle du panneau Comment utiliser le contrôle du panneau Oct 10, 2023 am 09:36 AM

Les étapes pour utiliser le contrôle Panel consistent d'abord à créer un contrôle Panel et à définir sa largeur, sa hauteur, sa couleur d'arrière-plan, sa couleur de bordure, sa largeur et son remplissage, à créer deux boutons et à les ajouter au contrôle Panel, et enfin à ajouter le contrôle Panel à la forme.

See all articles