XPathBinder Classe

Définition

Fournit une prise en charge pour les concepteurs de développement rapide d'application (RAD, Rapid Application Development) pour analyser des expressions de liaison de données qui utilisent les expressions XPath. Cette classe ne peut pas être héritée.

public ref class XPathBinder sealed
public sealed class XPathBinder
type XPathBinder = class
Public NotInheritable Class XPathBinder
Héritage
XPathBinder

Exemples

L’exemple de code suivant montre comment utiliser un XmlDataSource contrôle avec un contrôle modèle Repeater pour afficher des données XML. Cet exemple comporte deux parties :

  • Page Web Forms qui affiche les données XML.

  • Fichier XML qui contient les données.

La première partie de l’exemple montre une page Web Forms qui affiche les données XML accessibles via un XmlDataSource contrôle. Un Repeater contrôle utilise une syntaxe de méthode simplifiée Eval(Object, String) pour lier des éléments de données au sein du document XML que représente XmlDataSource . Il utilise la Select(Object, String) méthode pour récupérer une IEnumerable liste et l’affecter en tant que propriété liée DataSource tardivement au Repeater contrôle.

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

Le deuxième exemple fournit le fichier XML, Order.xml, utilisé comme source des données affichées dans la page Web Forms définie ci-dessus.

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

Remarques

Vous pouvez utiliser la méthode surchargée Eval de cette classe pour lier le résultat d’une expression XPath exécutée sur un objet qui implémente l’interface IXPathNavigable , comme un XmlNode. Vous pouvez utiliser la Select méthode pour récupérer les résultats d’une expression XPath exécutée sur un IXPathNavigable objet comme IEnumerable liste de nœuds. Cette liste de nœuds peut être énumérée directement ou affectée à la DataSource propriété d’un contrôle de liste, par exemple un Repeater ou DataList.

Vous pouvez utiliser une version simplifiée de la syntaxe de liaison de données lors de l’utilisation XPathBinder des méthodes de manière déclarative. Au lieu d’appeler XPathBinder.Eval(Container.DataItem, xpath) vous pouvez utiliser XPath(xpath). De même, au lieu d’appeler XPathBinder.Select(,xpath), vous pouvez utiliser XPathSelect(xpath``Container.DataItem) pour récupérer un IEnumerable ensemble de nœuds. Lorsque vous utilisez cette syntaxe simplifiée, les Eval méthodes et Select les méthodes supposent un objet de contexte par défaut Container.DataItem .

Pour plus d’informations sur la liaison de données à ASP.NET contrôles serveur, consultez Syntaxe de l’expression de liaison de données.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
Eval(Object, String)

Évalue des expressions de liaison de données XPath au moment de l'exécution.

Eval(Object, String, IXmlNamespaceResolver)

Évalue les expressions de liaison de données XPath au moment de l'exécution et met en forme le résultat sous forme de texte à afficher dans le navigateur demandeur, en utilisant l'objet IXmlNamespaceResolver spécifié pour résoudre des préfixes d'espace de noms dans l'expression XPath.

Eval(Object, String, String)

Évalue des expressions de liaison de données XPath au moment de l'exécution et met le résultat sous forme de texte à afficher dans le navigateur demandeur.

Eval(Object, String, String, IXmlNamespaceResolver)

Évalue les expressions de liaison de données XPath au moment de l'exécution et met en forme le résultat sous forme de texte à afficher dans le navigateur demandeur, en utilisant l'objet IXmlNamespaceResolver spécifié pour résoudre des préfixes d'espace de noms dans l'expression XPath.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
Select(Object, String)

Utilise une expression de liaison de données XPath au moment de l'exécution pour retourner une liste de nœuds.

Select(Object, String, IXmlNamespaceResolver)

Utilise une expression de liaison de données XPath au moment de l'exécution pour retourner une liste de nœuds, en utilisant l'objet IXmlNamespaceResolver spécifié pour résoudre des préfixes d'espace de noms dans l'expression XPath.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à