ADC

XPath と HTML、XML、または JSON エクスプレッション

高度なポリシーインフラストラクチャは、HTML、XML、および JavaScript オブジェクト表記 (JSON) ファイルからデータを評価および取得するための式をサポートしています。これにより、HTML、XML、または JSON ドキュメント内の特定のノードを検索したり、ファイルにノードが存在するかどうかを確認したり、XML コンテキスト内のノード (たとえば、特定の親を持つノードや特定の値を持つ特定の属性を持つノード) を検索したり、それらのノードの内容を返したりすることができます。さらに、書き換え式では XPath 式を使用できます。

XPath 用の高度なポリシー表現の実装は、HTML または XML テキストを指定する高度なポリシー表現プレフィックス (「HTTP.REQ.BODY」など) と、XPath 式を引数とする XPATH 演算子で構成されています。

HTML ファイルは、主に自由形式のタグとテキスト要素のコレクションです。XPath 式を引数として取る XPATH_HTML 演算子を使用して HTML ファイルを処理できます。JSON ファイルは、名前と値のペアのコレクション、または順序付けられた値のリストです。XPATH 式を引数として取る XPATH_JSON 演算子を使用して JSON ファイルを処理できます。

  • <text>.XPATH(xpathex):

    XML ファイルを操作し、ブール値を返します。

    たとえば、次のエクスプレッションは、XML ファイルの最初の 1000 バイト以内に「Creator」というノードが「Book」ノードの下にある場合に、ブール値 TRUE を返します。

    HTTP.REQ.BODY(1000).XPATH(xp%boolean(//Book/creator)%)

    パラメーター:

    xpathex-XPath ブーリアンエクスプレッション

  • <text>.XPATH(xpathex):

    XML ファイルを操作し、データ型「double」の値を返します。

    たとえば、次の式は、文字列が XML ファイルの最初の 1000 バイトにある場合、文字列「36」(価格値)をデータ型「double」の値に変換します。

    HTTP.REQ.BODY(1000).XPATH(xp%number(/Book/price)%)

    パラメーター:

    xpathex-XPath 数値表現

例:

    <Book>
    <creator>
        <Person>
            <name>Milton</name>
        </Person>
    </creator>
    <title>Paradise Lost</title>
    </Book>
<!--NeedCopy-->
  • <text>.XPATH(xpathex):

    XML ファイルを操作し、ノードセットまたは文字列を返します。ノードセットは、標準の XPath 文字列変換ルーチンを使用して対応する文字列に変換されます。

    たとえば、次のエクスプレッションは、本文の最初の 1000 バイトで「/book/Creator」(ノードセット) で囲まれているすべてのノードを選択します。

    HTTP.REQ.BODY(1000).XPATH(xp%/Book/creator%)

    パラメーター:

    xpathex-XPath式

  • <text>.XPATH_HTML(xpathex)

    HTML ファイルを操作し、テキスト値を返します。

    たとえば、次の式は HTML ファイルに対して動作し、title HTML 要素が最初の 1000 バイトに見つかった場合、<title\></title\> タグで囲まれたテキストを返します。

    HTTP.REQ.BODY(1000).XPATH_HTML(xp%/html/head/title%)

    パラメーター:

    xpathex-XPath テキスト表現

  • <text>.XPATH_HTML_WITH_MARKUP(xpathex)

    HTML ファイルを操作して、ドキュメントの選択した部分全体を含む文字列を返します。これには、要素タグを囲むマークアップなどのマークアップも含まれます。

    次の式は HTML ファイル上で動作し <\ title>、マークアップを含むタグ内のすべてのコンテンツを選択します。

    HTTP.REQ.BODY(1000).XPATH_HTML_WITH_MARKUP( xp%/html/head/title%)

    式によって選択された HTML 本文の部分には、今後の処理のためにマークが付けられます。

    パラメーター:

    xpathex-XPath式

  • <text\ >.XPATH_JSON (xpathhex)

    JSON ファイルを操作し、ブール値を返します。

    たとえば、次の JSON ファイルを考えてみます。

    { “Book”:{ “creator”:{ “person”:{ “name”:’<name>’ } }, “title”:’<title>’ } }

    次の式は JSON ファイルを操作し、JSON ファイルの最初の 1000 バイトに「creator」という名前の親ノードが「Book」である場合に、ブール値 TRUE を返します。

    HTTP.REQ.BODY(1000).XPATH_JSON(xp%boolean(/Book/creator)%)

    パラメーター:

    xpathex-XPath ブーリアンエクスプレッション

  • <text>.XPATH_JSON(xpathex)

    JSON ファイルを操作し、データ型「double」の値を返します。

    たとえば、次の JSON ファイルを考えてみます。

    { “Book”:{ “creator”:{ “person”:{ “name”:’<name>’ } }, “title”:’<title>’, “price”:”36” } }

    次の式は JSON ファイルを操作し、JSON ファイルの最初の 1000 バイトに文字列が存在する場合、文字列「36」をデータ型「double」の値に変換します。

    HTTP.REQ.BODY(1000).XPATH_JSON(xp%number(/Book/price)%)

    パラメーター:

    xpathex-XPath 数値表現

  • <text>.XPATH_JSON(xpathex)

    JSON ファイルを操作し、ノードセットまたは文字列を返します。ノードセットは、標準の XPath 文字列変換ルーチンを使用して対応する文字列に変換されます。

    たとえば、次の JSON ファイルを考えてみます。

    { “Book”:{ “creator”:{ “person”:{ “name”:’<name>’ } }, “title”:’<title>’ } }

    <name\ ><title\ >次の式は、JSON ファイル本体の最初の 1000 バイトで「/Book」(ノードセット) で囲まれているすべてのノードを選択し、対応する文字列値 (「」) を返します。

    HTTP.REQ.BODY(1000).XPATH_JSON(xp%/Book%)

    パラメーター:

    xpathex-XPath式

  • <text>.XPATH_JSON_WITH_MARKUP(xpathex)

    XML ファイルを操作して、結果を囲む要素タグなどのマークアップを含む、結果ノードの文書全体を含む文字列を返します。

    たとえば、次の JSON ファイルを考えてみます。

    {“Book”:{ “creator”:{ “person”:{ “name”:’<name>’ } }, “title”:’<title>’ } }

    <name\ >次の式は JSON ファイルに対して処理を行い、本文の最初の 1000 バイト、つまり「作成者:{person: {name: ‘\’}}」で「/book/Creator」で囲まれているすべてのノードを選択します。

    HTTP.REQ.BODY(1000).XPATH_JSON_WITH_MARKUP(xp%/Book/creator%)

    式によって選択された JSON 本文の部分には、今後の処理のためにマークが付けられます。

    パラメーター:

    xpathex-XPath式

  • <text\ >\ .XPATH_WIT_MARKUP (xpathhex):

    XML ファイルを操作して、結果を囲む要素タグなどのマークアップを含む、結果ノードの文書全体を含む文字列を返します。

    たとえば、次の式は XML ファイルを操作し、本文の最初の 1000 バイトで「/book/Creator」で囲まれたすべてのノードを選択します。

    HTTP.REQ.BODY(1000).XPATH_WITH_MARKUP(xp%/Book/creator%)

    式によって選択された JSON 本文の部分には、今後の処理のためにマークが付けられます。

    パラメーター:

    xpathex-XPath式

XPath と HTML、XML、または JSON エクスプレッション

この記事の概要