XPathBinder.Select Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Utiliza una expresión de enlace de datos XPath en tiempo de ejecución para devolver una lista de nodos.
Sobrecargas
Select(Object, String) |
Utiliza una expresión de enlace de datos XPath en tiempo de ejecución para devolver una lista de nodos. |
Select(Object, String, IXmlNamespaceResolver) |
Utiliza una expresión de enlace de datos XPath en tiempo de ejecución para devolver una lista de nodos, utilizando el objeto IXmlNamespaceResolver especificado para resolver los prefijos de espacio de nombres en la expresión XPath. |
Comentarios
Puede usar el método sobrecargado Select mediante declaración si desea simplificar la recuperación de un conjunto de nodos mediante una consulta XPath. Para ello, debe colocar las <%# and %> etiquetas, que también se usan en el enlace de datos estándar ASP.NET, en torno a la consulta XPath.
Select(Object, String)
Utiliza una expresión de enlace de datos XPath en tiempo de ejecución para devolver una lista de nodos.
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
Parámetros
- container
- Object
Referencia del objeto IXPathNavigable con respecto a la que se evalúa la expresión. Éste debe ser un identificador del objeto válido en el lenguaje especificado de la página.
- xPath
- String
Consulta XPath que recupera una lista de nodos.
Devoluciones
Lista de nodos IEnumerable.
Excepciones
El parámetro container
o xpath
es null
.
El objeto especificado por container
no es IXPathNavigable.
El nodo actual de XPathNodeIterator no tiene un nodo XML asociado.
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar un XmlDataSource control con un control con Repeater plantilla para mostrar datos XML. Este ejemplo tiene dos partes:
Página Web Forms que muestra datos XML.
Un archivo XML que contiene los datos.
La primera parte del ejemplo muestra una página de Web Forms que muestra los datos XML a los que se accede a través de un XmlDataSource control . Un Repeater control usa la sintaxis del método simplificado Eval(Object, String) para enlazar a elementos de datos dentro del documento XML que XmlDataSource representa. Usa el Select(Object, String) método para recuperar una IEnumerable lista y asignarla como una propiedad enlazada DataSource en tiempo de ejecución para el Repeater control.
<%@ 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>
En el segundo ejemplo se proporciona el archivo XML, Order.xml, que se usa como origen de los datos mostrados en la página Web Forms definida anteriormente.
<?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>
Comentarios
Puede usar el Select(Object, String) método mediante declaración si desea simplificar la recuperación de un conjunto de nodos mediante una consulta XPath. Para ello, debe colocar las <%# and %> etiquetas, que también se usan en el enlace de datos estándar ASP.NET, en torno a la consulta XPath.
Para cualquiera de las listas ASP.NET controles de servidor, como DataList, DataGrido Repeater, el container
parámetro debe ser Container.DataItem
.
Se aplica a
Select(Object, String, IXmlNamespaceResolver)
Utiliza una expresión de enlace de datos XPath en tiempo de ejecución para devolver una lista de nodos, utilizando el objeto IXmlNamespaceResolver especificado para resolver los prefijos de espacio de nombres en la expresión 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
Parámetros
- container
- Object
Referencia del objeto IXPathNavigable con respecto a la que se evalúa la expresión. Éste debe ser un identificador del objeto válido en el lenguaje especificado de la página.
- xPath
- String
Consulta XPath que recupera una lista de nodos.
- resolver
- IXmlNamespaceResolver
Objeto IXmlNamespaceResolver usado para resolver los prefijos de espacio de nombres en la expresión XPath.
Devoluciones
Lista de nodos IEnumerable.
Comentarios
Puede usar el Select método mediante declaración si desea simplificar la recuperación de un conjunto de nodos mediante una consulta XPath. Para ello, debe colocar las <%# and %> etiquetas, que también se usan en el enlace de datos estándar ASP.NET, alrededor de la consulta XPath y un IXmlNamespaceResolver objeto para resolver la referencia del espacio de nombres.
Para cualquiera de las listas ASP.NET controles de servidor, como DataList, DataGrido Repeater, el container
parámetro debe ser Container.DataItem
.