XPathBinder.Select Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.