XPathBinder.Select 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在运行时使用 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 节点列表。
例外
container
或 xpath
参数为 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 服务器控件,例如DataList,DataGrid或container
Repeater参数应为 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 节点列表。
注解
如果要使用 XPath 查询简化一组节点的检索,则可以 Select 以声明方式使用此方法。 为此,必须将标记放置在 <%# and %> XPath 查询和对象周围,这些标记也用于标准 ASP.NET 数据绑定中,以及用于IXmlNamespaceResolver解析命名空间引用的对象。
对于任何列表 ASP.NET 服务器控件,例如DataList,DataGrid或container
Repeater参数应为 Container.DataItem
。