Udostępnij za pośrednictwem


XPathBinder.Select Metoda

Definicja

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

Przeciążenia

Nazwa Opis
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, używając określonego IXmlNamespaceResolver obiektu 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%# i %> , które są również używane w standardowym powiązaniu 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

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ł obiektu 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 zawiera dwie części:

  • Strona formularzy sieci Web, która wyświetla dane XML.

  • Plik XML zawierający dane.

W pierwszej części przykładu przedstawiono stronę formularzy sieci Web, która wyświetla dane XML dostępne za pośrednictwem kontrolki XmlDataSource . 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 powiązanej DataSource późno 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 formularzy sieci Web zdefiniowanych 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%# i %> , które są również używane w standardowym powiązaniu danych ASP.NET wokół zapytania XPath.

W przypadku dowolnej z list 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, używając określonego IXmlNamespaceResolver obiektu 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

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

Zwraca

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ć < tagi%# i %> , które są również używane w standardowym powiązaniu danych ASP.NET, wokół zapytania XPath i IXmlNamespaceResolver obiektu, aby rozpoznać odwołanie do przestrzeni nazw.

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

Dotyczy