Compartir a través de


XPathBinder Clase

Definición

Proporciona compatibilidad con diseñadores de programación rápida de aplicaciones (RAD) para analizar expresiones de enlace de datos que utilizan expresiones XPath. Esta clase no puede heredarse.

public ref class XPathBinder sealed
public sealed class XPathBinder
type XPathBinder = class
Public NotInheritable Class XPathBinder
Herencia
XPathBinder

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar un XmlDataSource control con un control con Repeater plantilla para mostrar datos XML. Este ejemplo tiene dos partes:

  • Página Web Forms que muestra datos XML.

  • Un archivo XML que contiene los datos.

La primera parte del ejemplo muestra una página de Web Forms que muestra los datos XML a los que se accede a través de un XmlDataSource control . Un Repeater control usa la sintaxis simplificada Eval(Object, String) del método para enlazar a elementos de datos dentro del documento XML que XmlDataSource representa. Usa el Select(Object, String) método para recuperar una IEnumerable lista y asignarla como una propiedad enlazada DataSource en tiempo de ejecución para el Repeater control.

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>Order</title>
</head>
<body>
    <form id="form1" runat="server">
      <asp:XmlDataSource
        runat="server"
        id="XmlDataSource1"
        XPath="orders/order"
        DataFile="order.xml" />

      <asp:Repeater ID="Repeater1"
        runat="server"
        DataSourceID="XmlDataSource1">
        <ItemTemplate>
            <h2>Order</h2>
            <table>
              <tr>
                <td>Customer</td>
                <td><%#XPath("customer/@id")%></td>
                <td><%#XPath("customername/firstn")%></td>
                <td><%#XPath("customername/lastn")%></td>
              </tr>
              <tr>
                <td>Ship To</td>
                <td><%#XPath("shipaddress/address1")%></font></td>
                <td><%#XPath("shipaddress/city")%></td>
                <td><%#XPath("shipaddress/state")%>,
                    <%#XPath("shipaddress/zip")%></td>
              </tr>
            </table>
            <h3>Order Summary</h3>
            <asp:Repeater ID="Repeater2"
                 DataSource='<%#XPathSelect("summary/item")%>'
                 runat="server">
                <ItemTemplate>
                     <b><%#XPath("@dept")%></b> -
                         <%#XPath(".")%><br />
                </ItemTemplate>
            </asp:Repeater>
            <hr />
        </ItemTemplate>
    </asp:Repeater>

  </form>
  </body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>Order</title>
</head>
<body> 
    <form id="form1" runat="server">
      <asp:XmlDataSource
        runat="server"
        id="XmlDataSource1"
        XPath="orders/order"
        DataFile="order.xml" />

      <asp:Repeater ID="Repeater1"
        runat="server"
        DataSourceID="XmlDataSource1">
        <ItemTemplate>
            <h2>Order</h2>
            <table>
              <tr>
                <td>Customer</td>
                <td><%#XPath("customer/@id")%></td>
                <td><%#XPath("customername/firstn")%></td>
                <td><%#XPath("customername/lastn")%></td>
              </tr>
              <tr>
                <td>Ship To</td>
                <td><%#XPath("shipaddress/address1")%></font></td>
                <td><%#XPath("shipaddress/city")%></td>
                <td><%#XPath("shipaddress/state")%>,
                    <%#XPath("shipaddress/zip")%></td>
              </tr>
            </table>
            <h3>Order Summary</h3>
            <asp:Repeater ID="Repeater2"
                 DataSource='<%#XPathSelect("summary/item")%>'
                 runat="server">
                <ItemTemplate>
                     <b><%#XPath("@dept")%></b> -
                         <%#XPath(".")%><br />
                </ItemTemplate>
            </asp:Repeater>
            <hr />
        </ItemTemplate>
    </asp:Repeater>

  </form>
  </body>
</html>

En el segundo ejemplo se proporciona el archivo XML, Order.xml, que se usa como origen de los datos mostrados en la página Web Forms definida anteriormente.

<?xml version="1.0" encoding="iso-8859-1"?>  
  <orders>  
    <order>  
      <customer id="12345" />  
      <customername>  
        <firstn>John</firstn>  
        <lastn>Doe</lastn>  
      </customername>  
      <transaction id="12345" />  
      <shipaddress>  
        <address1>1234 Tenth Avenue</address1>  
        <city>Bellevue</city>  
        <state>Washington</state>  
        <zip>98001</zip>  
      </shipaddress>  
      <summary>  
        <item dept="tools">screwdriver</item>  
        <item dept="tools">hammer</item>  
        <item dept="plumbing">fixture</item>  
      </summary>  
    </order>  
 </orders>  

Comentarios

Puede usar el método sobrecargado Eval de esta clase para enlazar con el resultado de una expresión XPath ejecutada en un objeto que implementa la IXPathNavigable interfaz, como .XmlNode Puede usar el Select método para recuperar los resultados de una expresión XPath ejecutada en un IXPathNavigable objeto como una IEnumerable lista de nodos. Esta lista de nodos se puede enumerar directamente o asignar a la DataSource propiedad de un control de lista, como o Repeater DataList.

Puede usar una versión simplificada de la sintaxis de enlace de datos al usar los XPathBinder métodos mediante declaración. En lugar de llamar a XPathBinder.Eval(Container.DataItem, xpath) puede usar XPath(xpath). Del mismo modo, en lugar de llamar a XPathBinder.Select(Container.DataItem,xpath), puede usar XPathSelect(xpath) para recuperar un IEnumerable conjunto de nodos. Al usar esta sintaxis simplificada, los Eval métodos y Select asumen un objeto de contexto predeterminado Container.DataItem .

Para obtener más información sobre el enlace de datos a ASP.NET controles de servidor, vea Sintaxis de expresión de enlace de datos.

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
Eval(Object, String)

Evalúa las expresiones de enlace de datos XPath en tiempo de ejecución.

Eval(Object, String, IXmlNamespaceResolver)

Evalúa las expresiones de enlace de datos XPath en tiempo de ejecución y da al resultado el formato del texto que se va a mostrar en el explorador que realiza la solicitud, utilizando el objeto IXmlNamespaceResolver especificado para resolver los prefijos de espacio de nombres en la expresión XPath.

Eval(Object, String, String)

Evalúa las expresiones de enlace de datos XPath en tiempo de ejecución y da al resultado el formato del texto que se va a mostrar en el explorador que realiza la solicitud.

Eval(Object, String, String, IXmlNamespaceResolver)

Evalúa las expresiones de enlace de datos XPath en tiempo de ejecución y da al resultado el formato del texto que se va a mostrar en el explorador que realiza la solicitud, utilizando el objeto IXmlNamespaceResolver especificado para resolver los prefijos de espacio de nombres en la expresión XPath.

GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
Select(Object, String)

Utiliza una expresión de enlace de datos XPath en tiempo de ejecución para devolver una lista de nodos.

Select(Object, String, IXmlNamespaceResolver)

Utiliza una expresión de enlace de datos XPath en tiempo de ejecución para devolver una lista de nodos, utilizando el objeto IXmlNamespaceResolver especificado para resolver los prefijos de espacio de nombres en la expresión XPath.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a