ADC

Expresiones XPath y HTML, XML o JSON

La infraestructura de directivas avanzadas admite expresiones para evaluar y recuperar datos de archivos HTML, XML y de notación de objetos de JavaScript (JSON). Esto le permite buscar nodos específicos en un documento HTML, XML o JSON, determinar si existe un nodo en el archivo, localizar nodos en contextos XML (por ejemplo, nodos que tienen padres específicos o un atributo específico con un valor determinado) y devolver el contenido de dichos nodos. Además, puede utilizar expresiones XPath en expresiones de reescritura.

La implementación de la expresión de directiva avanzada para XPath comprende un prefijo de expresión de directiva avanzada (como “HTTP.REQ.BODY”) que designa el texto HTML o XML y el operador XPATH que toma la expresión XPath como argumento.

Los archivos HTML son en gran parte una colección de etiquetas y elementos de texto de formato libre. Puede usar el operador XPATH_HTML, que toma una expresión XPath como argumento, para procesar archivos HTML. Los archivos JSON son una colección de pares de nombre/valor o una lista ordenada de valores. Puede usar el operador XPATH_JSON, que toma una expresión XPath como argumento, para procesar archivos JSON.

  • .XPATH <text> (xpathex):

    Opere en un archivo XML y devuelva un valor booleano.

    Por ejemplo, la siguiente expresión devuelve un valor booleano TRUE si existe un nodo llamado “creator” en el nodo “Book” dentro de los primeros 1000 bytes del archivo XML.

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

    Parámetros:

    xpathex - Expresión booleana de XPath

  • .XPATH <text> (xpathex):

    Opere en un archivo XML y devuelva un valor del tipo de datos “double”.”

    Por ejemplo, la siguiente expresión convierte la cadena “36” (un valor de precio) en un valor del tipo de datos “double” si la cadena se encuentra en los primeros 1000 bytes del archivo XML:

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

    Parámetros:

    xpathex - Expresión numérica XPath

Ejemplo:

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

    Opere en un archivo XML y devuelva un conjunto de nodos o una cadena. Los conjuntos de nodos se convierten en las cadenas correspondientes mediante la rutina de conversión de cadenas XPath estándar.

    Por ejemplo, la siguiente expresión selecciona todos los nodos incluidos en “/BOOK/Creator” (un conjunto de nodos) en los primeros 1000 bytes del cuerpo:

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

    Parámetros:

    xpathex: Expresión XPath

  • <text>.XPATH_HTML (xpathex)

    Opere en un archivo HTML y devuelva un valor de texto.

    Por ejemplo, la siguiente expresión funciona en un archivo HTML y devuelve el texto incluido en las etiquetas <title\></title\> si el elemento HTML del título se encuentra en los primeros 1000 bytes:

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

    Parámetros:

    xpathex - Expresión de texto XPath

  • <text>.XPATH_HTML_CON_MARCADO (xpathex)

    Opere en un archivo HTML y devuelva una cadena que contenga toda la parte seleccionada del documento, incluidas las marcas, como las etiquetas de los elementos adjuntos.

    La siguiente expresión funciona en el archivo HTML y selecciona todo el contenido de la <\title> etiqueta, incluido el marcado.

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

    La parte del cuerpo HTML que selecciona la expresión se marca para su posterior procesamiento.

    Parámetros:

    xpathex: Expresión XPath

  • <text>.XPATH_JSON (xpathex)

    Opere en un archivo JSON y devuelva un valor booleano.

    Por ejemplo, considere el siguiente archivo JSON:

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

    La siguiente expresión opera en el archivo JSON y devuelve un valor booleano TRUE si el archivo JSON contiene un nodo llamado “creator”, cuyo nodo principal es “Book”, en los primeros 1000 bytes:

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

    Parámetros:

    xpathex - Expresión booleana de XPath

  • <text>.XPATH_JSON (xpathex)

    Opere en un archivo JSON y devuelva un valor del tipo de datos “double”.”

    Por ejemplo, considere el siguiente archivo JSON:

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

    La siguiente expresión opera en el archivo JSON y convierte la cadena “36” en un valor de tipo de datos “double” si la cadena está presente en los primeros 1000 bytes del archivo JSON.

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

    Parámetros:

    xpathex - Expresión numérica XPath

  • <text>.XPATH_JSON (xpathex)

    Opere en un archivo JSON y devuelva un conjunto de nodos o una cadena. Los conjuntos de nodos se convierten en las cadenas correspondientes mediante la rutina de conversión de cadenas XPath estándar.

    Por ejemplo, considere el siguiente archivo JSON:

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

    <name><title>La siguiente expresión selecciona todos los nodos incluidos en “/Book” (un conjunto de nodos) en los primeros 1000 bytes del cuerpo del archivo JSON y devuelve el valor de cadena correspondiente, que es “”:

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

    Parámetros:

    xpathex: Expresión XPath

  • <text>.XPATH_JSON_CON_MARCADO (xpathex)

    Opere en un archivo XML y devuelva una cadena que contenga la parte completa del documento correspondiente al nodo de resultados, incluidas las etiquetas de los elementos adjuntos.

    Por ejemplo, considere el siguiente archivo JSON:

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

    <name>La siguiente expresión funciona en el archivo JSON y selecciona todos los nodos incluidos por “/book/creator” en los primeros 1000 bytes del cuerpo, que es “creator: {person: {name: ‘'}}.”

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

    La parte del cuerpo de JSON que selecciona la expresión se marca para su posterior procesamiento.

    Parámetros:

    xpathex: Expresión XPath

  • <text>.XPATH_WITH_MARKUP (xpathex):

    Opere en un archivo XML y devuelva una cadena que contenga la parte completa del documento correspondiente al nodo de resultados, incluidas las etiquetas de los elementos adjuntos.

    Por ejemplo, la siguiente expresión funciona en un archivo XML y selecciona todos los nodos incluidos por “/BOOK/Creator” en los primeros 1000 bytes del cuerpo.

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

    La parte del cuerpo de JSON que selecciona la expresión se marca para su posterior procesamiento.

    Parámetros:

    xpathex: Expresión XPath

Expresiones XPath y HTML, XML o JSON

En este artículo