XPathBinder Classe

Definição

Fornece suporte para projetistas de desenvolvimento rápido de aplicações (RAD) para analisar expressões de ligação de dados que utilizam expressões XPath. Esta classe não pode ser herdada.

public ref class XPathBinder sealed
public sealed class XPathBinder
type XPathBinder = class
Public NotInheritable Class XPathBinder
Herança
XPathBinder

Exemplos

O exemplo de código seguinte demonstra como usar um XmlDataSource controlo com um controlo templateado Repeater para exibir dados XML. Este exemplo tem duas partes:

  • Uma página Web Forms que apresenta dados XML.

  • Um ficheiro XML que contém os dados.

A primeira parte do exemplo mostra uma página de Web Forms que mostra dados XML acedidos através de um XmlDataSource controlo. Um controlo utiliza sintaxe simplificada Eval(Object, String) de Repeater método para se ligar a itens de dados dentro do documento XML que representaXmlDataSource. Utiliza o Select(Object, String) método para recuperar uma IEnumerable lista e atribuí-la como uma propriedade de ligação DataSource tardia para o Repeater controlo.

<%@ 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>

O segundo exemplo fornece o ficheiro XML, Order.xml, que é usado como fonte dos dados apresentados na página Web Forms definida acima.

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

Observações

Pode usar o método sobrecarregado Eval desta classe para ligar ao resultado de uma expressão XPath executada contra um objeto que implementa a IXPathNavigable interface, como um XmlNode. Pode usar o Select método para recuperar os resultados de uma expressão XPath executada contra um IXPathNavigable objeto como uma IEnumerable lista de nós. Esta lista de nós pode ser enumerada diretamente ou atribuída à DataSource propriedade de um controlo de lista, como um Repeater ou DataList.

Pode usar uma versão simplificada da sintaxe de ligação de dados ao usar os XPathBinder métodos de forma declarativa. Em vez de chamar XPathBinder.Eval(Container.DataItem, xpath) pode usar XPath(xpath). De forma semelhante, em vez de chamar XPathBinder.Select(Container.DataItem,),xpath pode usar XPathSelect(xpath) para recuperar um IEnumerable conjunto de nós. Ao usar esta sintaxe simplificada, os Eval métodos e Select assumem um objeto de contexto por defeito Container.DataItem .

Para mais informações sobre a ligação de dados a controlos ASP.NET servidor, consulte Data-Binding Sintaxe de Expressão.

Métodos

Name Description
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Eval(Object, String, IXmlNamespaceResolver)

Avalia expressões de ligação de dados XPath em tempo de execução e formata o resultado como texto a ser exibido no navegador solicitante, usando o IXmlNamespaceResolver objeto especificado para resolver prefixos de namespace na expressão XPath.

Eval(Object, String, String, IXmlNamespaceResolver)

Avalia expressões de ligação de dados XPath em tempo de execução e formata o resultado como texto a ser exibido no navegador solicitante, usando o IXmlNamespaceResolver objeto especificado para resolver prefixos de namespace na expressão XPath.

Eval(Object, String, String)

Avalia expressões de ligação de dados XPath em tempo de execução e formata o resultado como texto a ser exibido no navegador solicitante.

Eval(Object, String)

Avalia expressões de ligação de dados XPath em tempo de execução.

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
Select(Object, String, IXmlNamespaceResolver)

Utiliza uma expressão de ligação de dados XPath em tempo de execução para devolver uma lista de nós, usando o IXmlNamespaceResolver objeto especificado para resolver prefixos de namespace na expressão XPath.

Select(Object, String)

Utiliza uma expressão de ligação de dados XPath em tempo de execução para devolver uma lista de nós.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Aplica-se a