次の方法で共有


XPathBinder.Select メソッド

定義

実行時に XPath データ バインディング式を使用して、ノードの一覧を返します。

オーバーロード

名前 説明
Select(Object, String)

実行時に XPath データ バインディング式を使用して、ノードの一覧を返します。

Select(Object, String, IXmlNamespaceResolver)

XPath 式の名前空間プレフィックスを解決するために指定された IXmlNamespaceResolver オブジェクトを使用して、実行時に XPath データ バインディング式を使用してノードの一覧を返します。

注釈

XPath クエリを使用して一連のノードの取得を簡略化する場合は、オーバーロードされた Select メソッドを宣言によって使用できます。 これを行うには、 <%# タグと %> タグを配置する必要があります。これは、標準の ASP.NET データ バインディングでも使用され、XPath クエリの周囲に配置されます。

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 データを表示する方法を示します。 この例には、次の 2 つの部分があります。

  • XML データを表示する Web フォーム ページ。

  • データを含む XML ファイル。

この例の最初の部分は、 XmlDataSource コントロールを介してアクセスされる XML データを表示する Web フォーム ページを示しています。 Repeater コントロールは、簡略化されたEval(Object, String)メソッド構文を使用して、XmlDataSourceが表す XML ドキュメント内のデータ項目にバインドします。 Select(Object, String) メソッドを使用してIEnumerable リストを取得し、Repeater コントロールの遅延バインディング DataSource プロパティとして割り当てます。

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

2 番目の例では、上記で定義した Web フォーム ページに表示されるデータのソースとして使用される XML ファイル Order.xmlを提供します。

<?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) メソッドを宣言によって使用できます。 これを行うには、 <%# タグと %> タグを配置する必要があります。これは、標準の ASP.NET データ バインディングでも使用され、XPath クエリの周囲に配置されます。

DataListDataGridRepeaterなど、サーバー コントロール ASP.NET リストの場合は、container パラメーターを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 メソッドを宣言によって使用できます。 これを行うには、標準の ASP.NET データ バインディングでも使用される <%# タグと %> タグを、名前空間参照を解決するために XPath クエリと IXmlNamespaceResolver オブジェクトの周囲に配置する必要があります。

DataListDataGridRepeaterなど、サーバー コントロール ASP.NET リストの場合は、container パラメーターをContainer.DataItemする必要があります。

適用対象