Partilhar via


XPathBinder.Select Método

Definição

Usa uma expressão de associação de dados XPath no tempo de execução para retornar uma lista de nós.

Sobrecargas

Select(Object, String)

Usa uma expressão de associação de dados XPath no tempo de execução para retornar uma lista de nós.

Select(Object, String, IXmlNamespaceResolver)

Usa uma expressão de associação de dados XPath no tempo de execução para retornar uma lista de nós, usando o objeto IXmlNamespaceResolver especificado para resolver os prefixos de namespace na expressão XPath.

Comentários

Você pode usar o método sobrecarregado Select declarativamente se quiser simplificar a recuperação de um conjunto de nós usando uma consulta XPath. Para fazer isso, você deve colocar as <marcas %# e %> , que também são usadas na associação de dados de ASP.NET padrão, em torno da consulta XPath.

Select(Object, String)

Usa uma expressão de associação de dados XPath no tempo de execução para retornar uma lista de nós.

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

A referência de objeto IXPathNavigable na qual a expressão é avaliada. Este valor deve ser um identificador de objeto válido no idioma especificado da página.

xPath
String

A consulta XPath que recupera uma lista de nós.

Retornos

Uma lista IEnumerable de nós.

Exceções

O parâmetro container ou xpath é null.

O objeto especificado pelo container não é um IXPathNavigable.

O nó atual do XPathNodeIterator não tem um nó XML associado.

Exemplos

O exemplo de código a seguir demonstra como usar um XmlDataSource controle com um controle modelo Repeater para exibir dados XML. Este exemplo tem duas partes:

  • Uma página Web Forms que exibe dados XML.

  • Um arquivo XML que contém os dados.

A primeira parte do exemplo mostra um Web Forms página que exibe dados XML acessados por meio de um XmlDataSource controle. Um Repeater controle usa a sintaxe de método simplificado Eval(Object, String) para associar a itens de dados dentro do documento XML que o XmlDataSource representa. Ele usa o Select(Object, String) método para recuperar uma IEnumerable lista e atribuí-la como uma propriedade com limite DataSource tardio para o Repeater controle.

<%@ 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>

O segundo exemplo fornece o arquivo XML, Order.xml, que é usado como a origem dos dados exibidos na página Web Forms definida acima.

<?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>  

Comentários

Você pode usar o Select(Object, String) método declarativamente se quiser simplificar a recuperação de um conjunto de nós usando uma consulta XPath. Para fazer isso, você deve colocar as <marcas %# e %> , que também são usadas na associação de dados de ASP.NET padrão, em torno da consulta XPath.

Para qualquer uma das listas ASP.NET controles de servidor, como DataList, DataGridou Repeater, o container parâmetro deve ser Container.DataItem.

Aplica-se a

Select(Object, String, IXmlNamespaceResolver)

Usa uma expressão de associação de dados XPath no tempo de execução para retornar uma lista de nós, usando o objeto IXmlNamespaceResolver especificado para resolver os prefixos de namespace na expressão 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

A referência de objeto IXPathNavigable na qual a expressão é avaliada. Este valor deve ser um identificador de objeto válido no idioma especificado da página.

xPath
String

A consulta XPath que recupera uma lista de nós.

resolver
IXmlNamespaceResolver

O objeto IXmlNamespaceResolver usado para resolver os prefixos de namespace na expressão XPath.

Retornos

Uma lista IEnumerable de nós.

Comentários

Você pode usar o Select método declarativamente se quiser simplificar a recuperação de um conjunto de nós usando uma consulta XPath. Para fazer isso, você deve colocar as <marcas %# e %> , que também são usadas na associação de dados de ASP.NET padrão, em torno da consulta XPath e de um IXmlNamespaceResolver objeto para resolver a referência de namespace.

Para qualquer uma das listas ASP.NET controles de servidor, como DataList, DataGridou Repeater, o container parâmetro deve ser Container.DataItem.

Aplica-se a