Compartir por


XPathBinder Clase

Definición

Proporciona compatibilidad con diseñadores rápidos de desarrollo de aplicaciones (RAD) para analizar expresiones de enlace de datos que usan 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 de formularios Web Forms que muestra datos XML.

  • Un archivo XML que contiene los datos.

La primera parte del ejemplo muestra una página de Formularios 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 formularios 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 RepeaterDataList.

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). De forma similar, 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, consulte sintaxis de expresión deData-Binding.

Métodos

Nombre Description
Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
Eval(Object, String, IXmlNamespaceResolver)

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

Eval(Object, String, String, IXmlNamespaceResolver)

Evalúa las expresiones de enlace de datos XPath en tiempo de ejecución y da formato al resultado como texto que se va a mostrar en el explorador solicitante, utilizando el IXmlNamespaceResolver objeto especificado para resolver 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 formato al resultado como texto que se mostrará en el explorador solicitante.

Eval(Object, String)

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

GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
Select(Object, String, IXmlNamespaceResolver)

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

Select(Object, String)

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

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a