XPathBinder.Select Metoda

Definicja

Używa wyrażenia powiązania danych XPath w czasie wykonywania, aby zwrócić listę węzłów.

Przeciążenia

Select(Object, String)

Używa wyrażenia powiązania danych XPath w czasie wykonywania, aby zwrócić listę węzłów.

Select(Object, String, IXmlNamespaceResolver)

Używa wyrażenia powiązania danych XPath w czasie wykonywania, aby zwrócić listę węzłów przy użyciu obiektu określonego IXmlNamespaceResolver do rozpoznawania prefiksów przestrzeni nazw w wyrażeniu XPath.

Uwagi

Można użyć metody przeciążonej Select deklaratywnie, jeśli chcesz uprościć pobieranie zestawu węzłów przy użyciu zapytania XPath. W tym celu należy umieścić tagi, które są również używane w standardowym powiązaniu <%# and %> danych ASP.NET, wokół zapytania XPath.

Select(Object, String)

Używa wyrażenia powiązania danych XPath w czasie wykonywania, aby zwrócić listę węzłów.

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

Parametry

container
Object

Odwołanie IXPathNavigable do obiektu, względem którego jest obliczane wyrażenie. Musi to być prawidłowy identyfikator obiektu w określonym języku strony.

xPath
String

Zapytanie XPath, które pobiera listę węzłów.

Zwraca

IEnumerable

Lista IEnumerable węzłów.

Wyjątki

Parametr container or xpath to null.

Obiekt określony przez container element nie jest obiektem IXPathNavigable.

Bieżący węzeł węzła XPathNodeIterator nie ma skojarzonego węzła XML.

Przykłady

W poniższym przykładzie kodu pokazano, jak używać kontrolki XmlDataSource z kontrolką szablonu Repeater do wyświetlania danych XML. Ten przykład ma dwie części:

  • Strona Web Forms zawierająca dane XML.

  • Plik XML zawierający dane.

Pierwsza część przykładu przedstawia stronę Web Forms, która wyświetla dane XML dostępne za pośrednictwem kontrolkiXmlDataSource. Kontrolka Repeater używa uproszczonej Eval(Object, String) składni metody do powiązania z elementami danych w dokumencie XML, który XmlDataSource reprezentuje. Używa Select(Object, String) metody do pobierania IEnumerable listy i przypisywania jej jako właściwości opóźnionej DataSource dla kontrolki Repeater .

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

Drugi przykład zawiera plik XML, Order.xml, który jest używany jako źródło danych wyświetlanych na stronie Web Forms zdefiniowanej powyżej.

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

Uwagi

Możesz użyć metody deklaratywnej Select(Object, String) , jeśli chcesz uprościć pobieranie zestawu węzłów przy użyciu zapytania XPath. W tym celu należy umieścić tagi, które są również używane w standardowym powiązaniu <%# and %> danych ASP.NET, wokół zapytania XPath.

Dla dowolnej listy ASP.NET kontrolek serwera, takich jak DataList, DataGridlub Repeater, container parametr powinien mieć wartość Container.DataItem.

Dotyczy

Select(Object, String, IXmlNamespaceResolver)

Używa wyrażenia powiązania danych XPath w czasie wykonywania, aby zwrócić listę węzłów przy użyciu obiektu określonego IXmlNamespaceResolver do rozpoznawania prefiksów przestrzeni nazw w wyrażeniu 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

Parametry

container
Object

Odwołanie IXPathNavigable do obiektu, względem którego jest obliczane wyrażenie. Musi to być prawidłowy identyfikator obiektu w określonym języku strony.

xPath
String

Zapytanie XPath, które pobiera listę węzłów.

resolver
IXmlNamespaceResolver

IXmlNamespaceResolver Obiekt używany do rozpoznawania prefiksów przestrzeni nazw w wyrażeniu XPath.

Zwraca

IEnumerable

Lista IEnumerable węzłów.

Uwagi

Możesz użyć metody deklaratywnej Select , jeśli chcesz uprościć pobieranie zestawu węzłów przy użyciu zapytania XPath. W tym celu należy umieścić <%# and %> tagi, które są również używane w standardowym powiązaniu danych ASP.NET, wokół zapytania XPath i IXmlNamespaceResolver obiektu w celu rozpoznania odwołania do przestrzeni nazw.

Dla dowolnej z list ASP.NET kontrolek serwera, takich jak DataList, DataGridlub Repeater, container parametr powinien mieć wartość Container.DataItem.

Dotyczy