XPathBinder.Select Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Использует выражение XPath привязки данных в период выполнения для возврата списка узлов.
Перегрузки
Select(Object, String) |
Использует выражение XPath привязки данных в период выполнения для возврата списка узлов. |
Select(Object, String, IXmlNamespaceResolver) |
Вычисляет выражения XPath привязки данных в период выполнения для возврата списка узлов, используя объект IXmlNamespaceResolver, заданный для разрешения префиксов пространства имен в выражении XPath. |
Комментарии
Перегруженный Select метод можно использовать декларативно, если требуется упростить получение набора узлов с помощью запроса XPath. Для этого необходимо поместить <теги %# и %> , которые также используются в стандартной привязке данных ASP.NET, вокруг запроса XPath.
Select(Object, String)
Использует выражение XPath привязки данных в период выполнения для возврата списка узлов.
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
Параметры
- container
- Object
Ссылка на объект IXPathNavigable, для которого вычисляется выражение. Это должен быть действительный идентификатор объекта на языке, определенном для страницы.
- xPath
- String
Запрос XPath, возвращающий список узлов.
Возвращаемое значение
Список IEnumerable узлов.
Исключения
Значение параметра container
или параметра xpath
— null
.
Объект, заданный container
, не является объектом IXPathNavigable.
У текущего узла XPathNodeIterator нет ассоциированного узла XML.
Примеры
В следующем примере кода показано, как использовать XmlDataSource элемент управления с шаблонным Repeater элементом управления для отображения XML-данных. Этот пример состоит из двух частей:
Страница веб-формы, на котором отображаются XML-данные.
XML-файл, содержащий данные.
В первой части примера показана страница веб-формы, на котором отображаются XML-данные, к которым осуществляется доступ через XmlDataSource элемент управления . Элемент Repeater управления использует упрощенный Eval(Object, String) синтаксис метода для привязки к элементам данных в XML-документе XmlDataSource , который представляет . Он использует метод для Select(Object, String) получения IEnumerable списка и назначения его в качестве свойства с поздней привязкой DataSourceRepeater для элемента управления .
<%@ 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>
Во втором примере представлен XML-файл Order.xml, который используется в качестве источника данных, отображаемых на странице веб-формы, определенной выше.
<?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>
Комментарии
Метод можно использовать Select(Object, String) декларативно, если требуется упростить получение набора узлов с помощью запроса XPath. Для этого необходимо поместить <теги %# и %> , которые также используются в стандартной привязке данных ASP.NET, вокруг запроса XPath.
Для любого списка ASP.NET серверных элементов управления, таких как DataList, DataGridили Repeater, container
параметр должен иметь значение Container.DataItem
.
Применяется к
Select(Object, String, IXmlNamespaceResolver)
Вычисляет выражения XPath привязки данных в период выполнения для возврата списка узлов, используя объект IXmlNamespaceResolver, заданный для разрешения префиксов пространства имен в выражении 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
Параметры
- container
- Object
Ссылка на объект IXPathNavigable, для которого вычисляется выражение. Это должен быть действительный идентификатор объекта на языке, определенном для страницы.
- xPath
- String
Запрос XPath, возвращающий список узлов.
- resolver
- IXmlNamespaceResolver
Объект IXmlNamespaceResolver, используемый для разрешения префиксов пространства имен в выражении XPath.
Возвращаемое значение
Список IEnumerable узлов.
Комментарии
Метод можно использовать Select декларативно, если требуется упростить получение набора узлов с помощью запроса XPath. Для этого необходимо разместить <теги %# и %> , которые также используются в стандартной привязке данных ASP.NET, вокруг запроса XPath и IXmlNamespaceResolver объекта для разрешения ссылки на пространство имен.
Для любого списка ASP.NET серверных элементов управления, таких как DataList, DataGridили Repeater, container
параметр должен иметь значение Container.DataItem
.