Compartir por


XPathBinder.Select Método

Definición

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

Sobrecargas

Nombre Description
Select(Object, String)

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

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.

Comentarios

Puede usar el método sobrecargado Select mediante declaración si desea simplificar la recuperación de un conjunto de nodos mediante una consulta XPath. Para ello, debe colocar las < etiquetas%# y %> , que también se usan en el enlace de datos estándar ASP.NET, en torno a la consulta XPath.

Select(Object, String)

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

public:
 static System::Collections::IEnumerable ^ Select(System::Object ^ container, System::String ^ xPath);
public static System.Collections.IEnumerable Select(object container, string xPath);
static member Select : obj * string -> System.Collections.IEnumerable
Public Shared Function Select (container As Object, xPath As String) As IEnumerable

Parámetros

container
Object

Referencia IXPathNavigable de objeto con la que se evalúa la expresión. Debe ser un identificador de objeto válido en el idioma especificado de la página.

xPath
String

Consulta XPath que recupera una lista de nodos.

Devoluciones

Lista IEnumerable de nodos.

Excepciones

El parámetro container o xpath es null.

El objeto especificado por container no es .IXPathNavigable

El nodo actual de XPathNodeIterator no tiene un nodo XML asociado.

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 del método simplificado Eval(Object, String) 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 Select(Object, String) método mediante declaración si desea simplificar la recuperación de un conjunto de nodos mediante una consulta XPath. Para ello, debe colocar las < etiquetas%# y %> , que también se usan en el enlace de datos estándar ASP.NET, en torno a la consulta XPath.

Para cualquiera de los controles de servidor de ASP.NET lista, como DataList, DataGrido Repeater, el container parámetro debe ser Container.DataItem.

Se aplica a

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.

public:
 static System::Collections::IEnumerable ^ Select(System::Object ^ container, System::String ^ xPath, System::Xml::IXmlNamespaceResolver ^ resolver);
public static System.Collections.IEnumerable Select(object container, string xPath, System.Xml.IXmlNamespaceResolver resolver);
static member Select : obj * string * System.Xml.IXmlNamespaceResolver -> System.Collections.IEnumerable
Public Shared Function Select (container As Object, xPath As String, resolver As IXmlNamespaceResolver) As IEnumerable

Parámetros

container
Object

Referencia IXPathNavigable de objeto con la que se evalúa la expresión. Debe ser un identificador de objeto válido en el idioma especificado de la página.

xPath
String

Consulta XPath que recupera una lista de nodos.

resolver
IXmlNamespaceResolver

Objeto IXmlNamespaceResolver utilizado para resolver prefijos de espacio de nombres en la expresión XPath.

Devoluciones

Lista IEnumerable de nodos.

Comentarios

Puede usar el Select método mediante declaración si desea simplificar la recuperación de un conjunto de nodos mediante una consulta XPath. Para ello, debe colocar las < etiquetas%# y %> , que también se usan en el enlace de datos estándar ASP.NET, alrededor de la consulta XPath y un IXmlNamespaceResolver objeto para resolver la referencia del espacio de nombres.

Para cualquiera de los controles de servidor de ASP.NET lista, como DataList, DataGrido Repeater, el container parámetro debe ser Container.DataItem.

Se aplica a