데이터 베이스 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

                        


 






   





   





       

       

       


 

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

iOS 개발자 버전과 공개 버전의 차이점은 무엇인가요? iOS 개발자 버전과 공개 버전의 차이점은 무엇인가요? Mar 01, 2024 pm 12:55 PM

매년 Apple이 iOS 및 macOS의 새로운 주요 버전을 출시하기 전에 사용자는 몇 달 전에 베타 버전을 다운로드하여 먼저 경험할 수 있습니다. 소프트웨어는 대중과 개발자 모두가 사용하기 때문에 Apple은 개발자 베타 버전의 공개 베타 버전인 개발자 버전과 공개 버전을 모두 출시했습니다. iOS 개발자 버전과 공개 버전의 차이점은 무엇인가요? 말 그대로 개발자 버전은 개발자 베타 버전이고, 퍼블릭 버전은 퍼블릭 베타 버전이다. 개발자 버전과 공개 버전은 서로 다른 대상을 대상으로 합니다. 개발자 버전은 개발자가 테스트하기 위해 Apple에서 사용합니다. 다운로드하고 업그레이드하려면 Apple 개발자 계정이 필요합니다.

Go 언어 웹 개발 프레임워크의 일반적인 서식 있는 텍스트 편집기 컨트롤 Go 언어 웹 개발 프레임워크의 일반적인 서식 있는 텍스트 편집기 컨트롤 Jun 04, 2023 am 09:10 AM

웹 애플리케이션의 인기로 인해 서식 있는 텍스트 편집기는 웹 개발에 없어서는 안 될 도구가 되었습니다. 웹 개발을 위해 Go 언어를 사용할 때 웹 사이트와 애플리케이션을 풍부하게 하기 위해 적합한 서식 있는 텍스트 편집기 컨트롤도 선택해야 합니다. 이 기사에서는 Go 언어 웹 개발에서 일반적인 서식 있는 텍스트 편집기 컨트롤에 대해 설명합니다. FroalaEditorFroalaEditor는 웹 개발에 널리 사용되는 인기 있는 서식 있는 텍스트 편집기 컨트롤입니다. 현대성이 있어요

HMD Skyline에 새로운 색상 옵션과 공식 자석 케이스 추가 HMD Skyline에 새로운 색상 옵션과 공식 자석 케이스 추가 Aug 23, 2024 am 07:04 AM

HMD 스카이라인(아마존에서 499달러에 구매 가능)이 지난달 출시 당시 네온 핑크와 트위스티드 블랙 두 가지 색상으로 출시됐다. 그들은 이제 블루 토파즈(Blue Topaz)라고 불리는 세 번째 색상과 합류했습니다. HMD 글로벌도 ph에 대한 공식 사례를 발표했다.

스위치 케이스 판단 변수 스위치 케이스 판단 변수 Feb 19, 2024 am 08:04 AM

Switchcase에서는 변수를 결정하기 위해 특정 코드 예제가 필요합니다. 프로그래밍에서는 다양한 변수 값을 기반으로 다양한 작업을 수행해야 하는 경우가 많습니다. switchcase 문은 변수 값에 따라 실행할 다양한 코드 블록을 선택할 수 있는 편리한 구조입니다. 다음은 변수의 다양한 값을 결정하기 위해 switchcase 문을 사용하는 방법을 보여주는 특정 코드 예입니다. #includeintmain(){

br은 어떤 소프트웨어인가요? br은 어떤 소프트웨어인가요? Dec 25, 2020 pm 03:06 PM

br은 Adobe에서 개발한 조직 도구 프로그램입니다. 전체 이름은 Adobe Bridge입니다. br은 ExtendScript 스크립트를 작성하거나 포함된 작업 흐름 스크립트 예제를 사용하여 Adobe Creative Suite의 각 구성 요소의 힘든 작업을 자동화할 수 있습니다.

PHP는 GMT/UTC 날짜/시간 형식을 지정합니다. PHP는 GMT/UTC 날짜/시간 형식을 지정합니다. Mar 21, 2024 am 10:41 AM

이 기사에서는 PHP에서 GMT/UTC 날짜/시간 형식을 지정하는 방법에 대해 자세히 설명합니다. 편집자는 이것이 매우 실용적이라고 생각하므로 이 기사를 읽고 뭔가를 얻을 수 있기를 바랍니다. PHP에서 GMT/UTC 날짜/시간 형식 지정 방법 소개 PHP에서 GMT/UTC 날짜/시간 형식 지정은 시간대 간 날짜를 올바르게 표시하고 처리하는 데 중요합니다. 이 기사에서는 PHP의 DateTime 클래스를 사용하여 GMT/UTC 날짜/시간 형식을 지정하는 방법과 사용 가능한 다양한 형식 옵션에 대해 설명합니다. DateTime 클래스 DateTime 클래스는 날짜와 시간을 나타냅니다. GMT/UTC와 같은 시간대의 날짜/시간 값을 저장하고 조작할 수 있습니다. 새로운 Da를 생성하려면

HTML에서 br은 무엇입니까? HTML에서 br은 무엇입니까? Feb 20, 2021 pm 02:32 PM

br은 HTML 문서에 간단한 줄 바꿈을 삽입하는 데 사용되는 HTML의 줄 바꿈 태그입니다. 수동 줄 바꿈이 필요한 경우 "<br>"을 추가하면 내용 줄 바꿈을 달성할 수 있습니다. "<br>" 태그는 빈 태그입니다. 즉, 닫는 태그가 없습니다.

패널 컨트롤 사용 방법 패널 컨트롤 사용 방법 Oct 10, 2023 am 09:36 AM

패널 컨트롤을 사용하는 단계는 먼저 Panel 컨트롤을 만들고 너비, 높이, 배경색, 테두리 색상, 테두리 너비 및 패딩을 설정하고 두 개의 버튼을 만들어 Panel 컨트롤에 추가한 다음 마지막으로 Panel 컨트롤을 형태.

See all articles