ADC

xPath 和 HTML、XML 或 JSON 表达式

高级策略基础结构支持用于评估和检索 HTML、XML 和 JavaScript 对象表示法 (JSON) 文件中的数据的表达式。这使您能够在 HTML、XML 或 JSON 文档中查找特定节点,确定文件中是否存在节点,在 XML 上下文中定位节点(例如,具有特定父节点或具有给定值的特定属性的节点),并返回此类节点的内容。此外,还可以在重写表达式中使用 XPath 表达式。

XPath 的高级策略表达式实现包括指定 HTML 或 XML 文本的高级策略表达式前缀(如“HTTP.REQ.BOTY”),以及将 XPath 表达式作为其参数的 XPATH 运算符。

HTML 文件主要是自由格式的标签和文本元素集合。您可以使用 XPATH_HTML 运算符来处理 HTML 文件,该运算符以 XPath 表达式作为其参数。JSON 文件要么是名称/值对的集合,要么是有序的值列表。您可以使用 XPATH_JSON 运算符来处理 JSON 文件,该运算符以 XPath 表达式作为其参数。

  • <text>.XPATH(xpathex):

    对 XML 文件进行操作并返回布尔值。

    例如,如果一个名为“创建者”的节点存在于 XML 文件的前 1000 个字节内的节点“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 文件进行操作,如果在前 1000 个字节中找到标题 HTML 元素,则返回用 <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(xpathex)

    对 JSON 文件进行操作并返回布尔值。

    例如,请考虑以下 JSON 文件:

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

    以下表达式对 JSON 文件运行,如果 JSON 文件包含一个名为“创建者”的节点,其父节点在前 1000 个字节中为“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 文件运行,并将字符串“36” 转换为数据类型“double”的值(如果字符串存在于 JSON 文件的前 1000 个字节中)。

    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>’ } }

    以下表达式选择 JSON 文件正文前 1000 字节中由“/Book”(节点集)包围的所有节点,并返回相应的字符串值,即“<name><title>”:

    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>’ } }

    以下表达式对 JSON 文件进行操作,选择正文前 1000 个字节(即“creator:{ person:{ name:’<name>’ } }”中用“/Book/creator”包围的所有节点。

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

    表达式选择的 JSON 正文部分会被标记以供进一步处理。

    参数:

    xpathex-xPath 表达式

  • <text>.XPATH_WITH_MARKUP(xpathex):

    对 XML 文件进行操作并返回一个字符串,该字符串包含结果节点文档的整个部分,包括标注,例如包含封闭元素标签。

    例如,以下表达式对 XML 文件进行操作,并在正文的前 1000 个字节中选择由“/book/Creator”封闭的所有节点。

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

    表达式选择的 JSON 正文部分会被标记以供进一步处理。

    参数:

    xpathex-xPath 表达式

xPath 和 HTML、XML 或 JSON 表达式