XPathBinder.Select 方法

定义

在运行时使用 XPath 数据绑定表达式来返回节点列表。

重载

Select(Object, String)

在运行时使用 XPath 数据绑定表达式来返回节点列表。

Select(Object, String, IXmlNamespaceResolver)

通过使用指定用来解析 XPath 表达式中的命名空间前缀的 IXmlNamespaceResolver,可以在运行时使用 XPath 数据绑定表达式来返回节点列表。

注解

如果要使用 XPath 查询简化一组节点的检索,则可以以声明方式使用重载 Select 方法。 为此,必须在 XPath 查询周围放置<%# and %>标准 ASP.NET 数据绑定中使用的标记。

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

一个 IEnumerable 节点列表。

例外

containerxpath 参数为 null

container 指定的对象不是 IXPathNavigable

XPathNodeIterator 的当前节点没有关联 XML 节点。

示例

下面的代码示例演示如何将控件与模板化Repeater控件一XmlDataSource起使用以显示 XML 数据。 此示例有两个部分:

  • 显示 XML 数据的Web Forms页。

  • 包含数据的 XML 文件。

本示例的第一部分显示了一个Web Forms页,该页显示通过控件访问的 XmlDataSource XML 数据。 控件 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),该文件用作上面定义的Web Forms页中显示的数据的源。

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

注解

如果要使用 XPath 查询简化一组节点的检索,则可以 Select(Object, String) 以声明方式使用此方法。 为此,必须在 XPath 查询周围放置<%# and %>标准 ASP.NET 数据绑定中使用的标记。

对于任何列表 ASP.NET 服务器控件,例如DataListDataGridcontainerRepeater参数应为 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

用来解析 XPath 表达式中的命名空间前缀的 IXmlNamespaceResolver 对象。

返回

IEnumerable

一个 IEnumerable 节点列表。

注解

如果要使用 XPath 查询简化一组节点的检索,则可以 Select 以声明方式使用此方法。 为此,必须将标记放置在 <%# and %> XPath 查询和对象周围,这些标记也用于标准 ASP.NET 数据绑定中,以及用于IXmlNamespaceResolver解析命名空间引用的对象。

对于任何列表 ASP.NET 服务器控件,例如DataListDataGridcontainerRepeater参数应为 Container.DataItem

适用于