Cómo: Mostrar un documento XML en ASP.NET utilizando el control de servidor Web XML

Seleccione idioma Seleccione idioma
Id. de artículo: 315906 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo paso a paso muestra cómo utilizar el control XML de servidor Web para que pueda mostrar un documento de lenguaje de marcado extensible (XML) mediante Extensible Stylesheet Language transformación (XSLT) desde dentro de Microsoft .NET Framework.

El control XML facilita datos XML fáciles de usar en un formulario Web. El control XML encapsula el código que tradicionalmente agrega autor de la página.

Requisitos

En la lista siguiente se describe el hardware, el software, la infraestructura de red y los Service Packs recomendados que necesitará:
  • Microsoft Windows 2000 Professional, Microsoft Windows 2000 Server o Microsoft Windows XP Professional con Microsoft .NET Framework instalada
En este artículo se supone que está familiarizado con los temas siguientes:
  • XML y Extensible Stylesheet Language transformación (XSLT)
  • Controles de servidor Web de .NET framework

Mostrar un documento XML de .NET

En esta sección, se crea una pequeña aplicación Web ASP.NET que permite que un cliente seleccionar elementos de menú de comida basándose en el recuento de calorías. Para ello, el ejemplo utiliza el control de servidor Web XML , un documento XML simple que contiene los datos de menú y una hoja de estilos XSL para transformar los datos XML. Puede utilizar la clase XsltArgumentList del espacio de nombres System.Xml.xsl para tener acceso a los parámetros de la transformación.
  1. Cree una aplicación Web de Visual Basic la manera siguiente:
    1. Iniciar Visual Studio.NET, elija nuevo y, a continuación, haga clic en proyecto .
    2. En Tipos de proyecto , haga clic en Proyectos de Visual Basic . En plantillas , haga clic en Aplicación Web ASP.NET .
    3. En el cuadro nombre , escriba menú y, a continuación, haga clic en Aceptar .
  2. Asegúrese de que la ventana Explorador de soluciones está visible. Si esta ventana no está visible, presione CTRL + ALT + L.
  3. WebForm1.aspx debe abrirse en la vista Diseño. Si no es así, haga doble clic en WebForm1.aspx en el Explorador de soluciones.
  4. Presione la tecla F4 para obtener acceso a la página de propiedades. Cambie la propiedad pageLayout en FlowLayout .
  5. En el formulario Web, escriba calorías máximo: .
  6. Agregar un control TextBox , un control Button y un control XML en el formulario como sigue:
    1. Presione CTRL+ALT+X para abrir la caja de herramientas.
    2. En el cuadro de herramientas, haga clic en Formularios Web Forms .
    3. Arrastre un control TextBox y un control de botón del cuadro de herramientas al Web Form.
    4. Presione F4 para obtener acceso a la ventana de propiedad para el control Button y cambie la propiedad Text al Menú de filtro .
    5. Coloque el punto de inserción detrás del botón y, a continuación, presione ENTRAR para situar el punto de inserción para el control XML .
    6. Arrastre un control de servidor de Web de XML desde el cuadro de herramientas al Web Form.
    7. Presione F4 para acceder a la ventana Propiedades del control XML . Cambie la propiedad DocumentSource a Menu.xml y, a continuación, cambie la propiedad TransformSource a Menu.xslt .
  7. Agregue el código siguiente al principio del código - detrás de la página:
    Imports System.Xml.Xsl
    					
  8. Haga doble clic en el botón para crear un controlador de eventos Click en la página de código subyacente del formulario Web. Agregue el código siguiente al controlador de eventos:
    Dim tal As New XsltArgumentList()
        tal.AddParam("calories", "", TextBox1.Text)
        Xml1.TransformArgumentList = tal
        Xml1.Visible = True
    						
    con esta lista de argumentos, puede pasar el valor del control TextBox como un parámetro a la hoja de estilos. Este comandos XSLT de hoja de estilos utiliza para filtrar todos los elementos de menú comida son mayores que la calorías que contar los tipos de cliente. La siguiente línea de código de la hoja de estilos muestra cómo se recibido y se utiliza el parámetro:
    <xsl:for-each select="lunch-menu/food[calories <= $calories]">
    					
  9. Utilice el código de la Menu.xml y las secciones Menu.xslt para crear el Menu.xml y los archivos Menu.xslt. Guardar estos archivos en la misma carpeta que WebForm1.aspx.

Lista de código completa

Menu.Xml

<?xml version='1.0'?>
<lunch-menu>
  <food>
    <name>Cheese Pizza</name>
    <price>$6.95</price>
    <description>Individual deep-dish pizza with lots of mozzarella cheese</description>
    <calories>800</calories>
  </food>
  <food>
    <name>Pepperoni Pizza</name>
    <price>$7.95</price>
    <description>Individual deep-dish cheese pizza with thick-cut pepperoni slices</description>
    <calories>950</calories>
  </food>
  <food>
    <name>The "Everything" Pizza</name>
    <price>$9.95</price>
    <description>Individual deep-dish pizza with all our toppings. House specialty!</description>
    <calories>800</calories>  </food>
  <food>
    <name>Hungarian Ghoulash</name>
    <price>$4.50</price>
    <description>Large serving in a sourdough bread bowl. A_local delight!</description>
    <calories>600</calories>
  </food>
  <food>
    <name>Maisey's Pork Sandwich</name>
    <price>$6.95</price>
    <description>A fresh pork fillet, deep-fried to perfection. Served with fries.</description>

    <calories>950</calories>
  </food>
</lunch-menu>
				

Menu.XSLT

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:param name="calories">1500</xsl:param>
  <xsl:template match="/">
    <HTML>
      <BODY STYLE="font-family:Arial, helvetica, sans-serif; font-size:12pt;
            background-color:#EEEEEE">
        <xsl:for-each select="lunch-menu/food[calories <= $calories]">
          <DIV STYLE="background-color:blue; color:white; padding:4px">
            <SPAN STYLE="font-weight:bold; color:white"><xsl:value-of select="name"/></SPAN>
            - <xsl:value-of select="price"/>
          </DIV>
          <DIV STYLE="margin-left:20px; margin-bottom:1em; font-size:10pt">
            <xsl:value-of select="description"/>
            <SPAN STYLE="font-style:italic">
              (<xsl:value-of select="calories"/> calories per serving)
            </SPAN>
          </DIV>
        </xsl:for-each>
      </BODY>
    </HTML>
  </xsl:template>
</xsl:stylesheet>
				

WebForm1.aspx

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="menu.WebForm1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
  <HEAD>
    <title>WebForm1</title>
    <meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">
    <meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
    <meta name=vs_defaultClientScript content="JavaScript">
    <meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5">
  </HEAD>
  <body >

    <form id="Form1" method="post" runat="server">
<P>Maximum Calories: 
<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
<asp:Button id="Button1" runat="server" Text="Filter Menu"></asp:Button></P>
<P>
<asp:Xml id="Xml1" runat="server" DocumentSource="menu.xml" TransformSource="menu.xslt"></asp:Xml></P>

    </form>

  </body>
</HTML>
				

WebForm1.vb

Imports System.Xml.Xsl

Public Class WebForm1
    Inherits System.Web.UI.Page
    Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox
    Protected WithEvents Button1 As System.Web.UI.WebControls.Button
    Protected WithEvents Xml1 As System.Web.UI.WebControls.Xml

#Region " Web Form Designer Generated Code "

    'The Web Form Designer requires this code.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

    End Sub

    Private Sub Page_Init(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Init
        'CODEGEN: The Web Form Designer requires this method call.
        'Do not use the Code editor to modify it.
        InitializeComponent()
    End Sub

#End Region

    Private Sub Page_Load(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load
        'Insert user code to initialize the page here.
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click
        Dim tal As New XsltArgumentList()
        tal.AddParam("calories", "", TextBox1.Text)
        Xml1.TransformArgumentList = tal
        Xml1.Visible = True
    End Sub
End Class
				

Comprobar que funciona

  1. Presione F5 para ejecutar la aplicación en modo depuración.
  2. De forma predeterminada, todo del menú aparece. Tome nota de los recuentos de calorías para cada elemento.
  3. En el cuadro de texto, escriba una cantidad de calorías y, a continuación, haga clic en Filtro menú . Observe que aparecen sólo los elementos de menú que están menor o igual a este importe calorías.
  4. Presione MAYÚSCULAS+F5 para detener la depuración y volver a Visual Studio. NET.

Referencias

Para obtener más información al respecto, visite el siguiente sitio Web de Microsoft:
XML Core
http://msdn.microsoft.com/library/default.asp?url=/nhp/default.asp?contentid=28000438&frame=true
Para obtener información adicional acerca de controles de servidor Web, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
306459INFORMACIÓN: ASP.NET Server Controls Overview

Propiedades

Id. de artículo: 315906 - Última revisión: viernes, 07 de febrero de 2003 - Versión: 2.1
La información de este artículo se refiere a:
  • Microsoft ASP.NET 1.0
Palabras clave: 
kbmt kbctrl kbhowtomaster kbwebforms KB315906 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 315906
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com