XPathBinder.Select Método

Definição

Utiliza uma expressão de ligação de dados XPath em tempo de execução para devolver uma lista de nós.

Sobrecargas

Name Description
Select(Object, String)

Utiliza uma expressão de ligação de dados XPath em tempo de execução para devolver uma lista de nós.

Select(Object, String, IXmlNamespaceResolver)

Utiliza uma expressão de ligação de dados XPath em tempo de execução para devolver uma lista de nós, usando o IXmlNamespaceResolver objeto especificado para resolver prefixos de namespace na expressão XPath.

Observações

Podes usar o método saturado Select declarativamente se quiseres simplificar a recuperação de um conjunto de nós usando uma consulta XPath. Para tal, deve colocar as etiquetas <%# e %>, que também são usadas na ligação de dados ASP.NET padrão, em torno da consulta XPath.

Select(Object, String)

Utiliza uma expressão de ligação de dados XPath em tempo de execução para devolver 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 IXPathNavigable referência do objeto contra a qual a expressão é avaliada. Este deve ser um identificador de objeto válido na linguagem especificada da página.

xPath
String

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

Devoluções

Uma IEnumerable lista de nós.

Exceções

O container parâmetro ou xpath é null.

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

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

Exemplos

O exemplo de código seguinte demonstra como usar um XmlDataSource controlo com um controlo templateado Repeater para exibir dados XML. Este exemplo tem duas partes:

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

  • Um ficheiro XML que contém os dados.

A primeira parte do exemplo mostra uma página de Web Forms que mostra dados XML acedidos através de um XmlDataSource controlo. Um Repeater controlo utiliza a sintaxe simplificada Eval(Object, String) do método para se ligar a elementos de dados dentro do documento XML que representa XmlDataSource . Utiliza o Select(Object, String) método para recuperar uma IEnumerable lista e atribuí-la como uma propriedade de ligação DataSource tardia para o Repeater controlo.

<%@ 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 ficheiro XML, Order.xml, que é usado como fonte dos dados apresentados 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>

Observações

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 tal, deve colocar as etiquetas <%# e %>, que também são usadas na ligação de dados ASP.NET padrão, em torno da consulta XPath.

Para qualquer um dos controlos da lista ASP.NET servidor, como DataList, DataGrid ou Repeater, o parâmetro container deve ser Container.DataItem.

Aplica-se a

Select(Object, String, IXmlNamespaceResolver)

Utiliza uma expressão de ligação de dados XPath em tempo de execução para devolver uma lista de nós, usando o IXmlNamespaceResolver objeto especificado para resolver 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 IXPathNavigable referência do objeto contra a qual a expressão é avaliada. Este deve ser um identificador de objeto válido na linguagem especificada da página.

xPath
String

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

resolver
IXmlNamespaceResolver

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

Devoluções

Uma IEnumerable lista de nós.

Observações

Pode usar o Select método declarativamente se quiser simplificar a recuperação de um conjunto de nós usando uma consulta XPath. Para tal, deve colocar as etiquetas <%# e %>, que também são usadas em ligação de dados ASP.NET padrão, à volta da consulta XPath e de um objeto IXmlNamespaceResolver para resolver a referência do namespace.

Para qualquer um dos controlos da lista ASP.NET servidor, como DataList, DataGrid ou Repeater, o parâmetro container deve ser Container.DataItem.

Aplica-se a