Citrix ADC

XPath y expresiones HTML, XML o JSON

La infraestructura de directivas avanzada admite expresiones para evaluar y recuperar datos de archivos HTML, XML y JavaScript Object Notation (JSON). Esto le permite encontrar 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 elementos principales 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 expresión de directiva avanzada para XPath incluye un prefijo de expresión de directiva avanzada (como “HTTP.REQ.BODY”) que designa texto HTML o XML, y el operador XPATH que toma la expresión XPath como argumento.

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

  • <text>.XPATH (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 “creador” bajo el nodo “Libro” dentro de los primeros 1000 bytes del archivo XML.

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

    Parámetros:

    xpathex: Expresión booleana XPath

  • <text>.XPATH (xpathex):

    Operar en un archivo XML y devolver un valor de tipo de datos “doble”.

    Por ejemplo, la siguiente expresión convierte la cadena “36” (un valor de precio) en un valor de tipo de datos “double” si la cadena está 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>
  • <text>.XPATH (xpathex):

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

    Por ejemplo, la siguiente expresión selecciona todos los nodos que están encerrados por “/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)

    Operar en un archivo HTML y devolver un valor de texto.

    Por ejemplo, la siguiente expresión funciona en un archivo HTML y devuelve el texto incluido en <title\></title\> las etiquetas si el elemento HTML de 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_WITH_MARKUP (xpathex)

    Opere en un archivo HTML y devuelva una cadena que contenga toda la parte seleccionada del documento, incluido el marcado, como incluir las etiquetas de elemento adjunto.

    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 seleccionada por 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 XPath

  • <text>.XPATH_JSON (xpathex)

    Operar en un archivo JSON y devolver un valor de tipo de datos “doble”.

    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 cadenas correspondientes mediante el uso de la rutina de conversión de cadenas XPath estándar.

    Por ejemplo, considere el siguiente archivo JSON:

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

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

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

    Parámetros:

    xpathex: Expresión XPath

  • <text>.XPATH_JSON_WITH_MARKUP (xpathex)

    Opere en un archivo XML y devuelva una cadena que contenga toda la parte del documento para el nodo de resultado, incluido el marcado, como incluir las etiquetas de elemento adjunto.

    Por ejemplo, considere el siguiente archivo JSON:

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

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

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

    La parte del cuerpo JSON seleccionada por 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 toda la parte del documento para el nodo de resultado, incluido el marcado, como incluir las etiquetas de elemento adjunto.

    Por ejemplo, la siguiente expresión opera 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 JSON seleccionada por la expresión se marca para su posterior procesamiento.

    Parámetros:

    xpathex: Expresión XPath

XPath y expresiones HTML, XML o JSON