Поделиться через


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.

Объект, указанный containerIXPathNavigableне является объектом.

Текущий узел не XPathNodeIterator имеет связанного XML-узла.

Примеры

В следующем примере кода показано, как использовать XmlDataSource элемент управления с шаблонным Repeater элементом управления для отображения XML-данных. В этом примере есть две части:

  • Страница веб-форм, отображающая XML-данные.

  • XML-файл, содержащий данные.

В первой части примера показана страница веб-форм, отображающая xml-данные, к которым обращается XmlDataSource элемент управления. Элемент Repeater управления использует упрощенный Eval(Object, String) синтаксис метода для привязки к элементам данных в XML-документе, который XmlDataSource представляет. Он использует Select(Object, String) метод для получения IEnumerable списка и назначения его в качестве свойства с поздней привязкой DataSource для 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>

Второй пример предоставляет 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.

Применяется к