Comparteix a través de


XPathBinder.Select Método

Definición

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

Sobrecargas

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.

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 <%# and %> etiquetas, que también se usan en el enlace de datos estándar ASP.NET, en torno a la consulta XPath.

Select(Object, String)

Utiliza 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 del objeto IXPathNavigable con respecto a la que se evalúa la expresión. Éste debe ser un identificador del objeto válido en el lenguaje especificado de la página.

xPath
String

Consulta XPath que recupera una lista de nodos.

Devoluciones

IEnumerable

Lista de nodos IEnumerable.

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 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 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 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 <%# and %> etiquetas, que también se usan en el enlace de datos estándar ASP.NET, en torno a la consulta XPath.

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

Se aplica a

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.

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 del objeto IXPathNavigable con respecto a la que se evalúa la expresión. Éste debe ser un identificador del objeto válido en el lenguaje especificado de la página.

xPath
String

Consulta XPath que recupera una lista de nodos.

resolver
IXmlNamespaceResolver

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

Devoluciones

IEnumerable

Lista de nodos IEnumerable.

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 <%# and %> etiquetas, 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 las listas ASP.NET controles de servidor, como DataList, DataGrido Repeater, el container parámetro debe ser Container.DataItem.

Se aplica a