ADC

Expressions XPath et HTML, XML ou JSON

L’infrastructure de stratégie avancée prend en charge les expressions permettant d’évaluer et de récupérer des données à partir de fichiers JSON (HTML, XML et JavaScript Object Notation). Cela vous permet de rechercher des nœuds spécifiques dans un document HTML, XML ou JSON, de déterminer si un nœud existe dans le fichier, de localiser des nœuds dans des contextes XML (par exemple, des nœuds ayant des parents spécifiques ou un attribut spécifique avec une valeur donnée) et de renvoyer le contenu de ces nœuds. En outre, vous pouvez utiliser des expressions XPath pour réécrire des expressions.

L’implémentation de l’expression de stratégie avancée pour XPath comprend un préfixe d’expression de stratégie avancée (tel que « HTTP.REQ.BODY ») qui désigne du texte HTML ou XML, et l’opérateur XPATH qui prend l’expression XPath comme argument.

Les fichiers HTML sont en grande partie une collection libre de balises et d’éléments de texte. Vous pouvez utiliser l’opérateur XPATH_HTML, qui prend une expression XPath comme argument, pour traiter les fichiers HTML. Les fichiers JSON sont soit un ensemble de paires nom/valeur, soit une liste ordonnée de valeurs. Vous pouvez utiliser l’opérateur XPATH_JSON, qui prend une expression XPath comme argument, pour traiter les fichiers JSON.

  • <text>.XPATH(xpathex):

    Opérez sur un fichier XML et renvoyez une valeur booléenne.

    Par exemple, l’expression suivante renvoie une valeur booléenne TRUE si un nœud appelé « creator » existe sous le nœud « Book » dans les 1 000 premiers octets du fichier XML.

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

    Paramètres :

    xpathex - Expression booléenne XPath

  • <text>.XPATH(xpathex):

    Opérer sur un fichier XML et renvoyer une valeur de type de données “double.”

    Par exemple, l’expression suivante convertit la chaîne « 36” (une valeur de prix) en une valeur de type de données « double » si la chaîne se trouve dans les 1000 premiers octets du fichier XML :

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

    Paramètres :

    xpathex - Expression numérique XPath

Exemple :

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

    Opérez sur un fichier XML et renvoyez un ensemble de nœuds ou une chaîne. Les ensembles de nœuds sont convertis en chaînes correspondantes à l’aide de la routine de conversion de chaînes XPath standard.

    Par exemple, l’expression suivante sélectionne tous les nœuds délimités par « /book/creator » (un ensemble de nœuds) dans les 1 000 premiers octets du corps :

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

    Paramètres :

    xpathex - Expression XPath

  • <text>.XPATH_HTML(xpathex)

    Opérez sur un fichier HTML et renvoyez une valeur de texte.

    Par exemple, l’expression suivante fonctionne sur un fichier HTML et renvoie le texte enfermé dans les balises <title\></title\> si l’élément HTML titre se trouve dans les 1000 premiers octets :

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

    Paramètres :

    xpathex - Expression de texte XPath

  • <text>.XPATH_HTML_WITH_MARKUP(xpathex)

    Travaillez sur un fichier HTML et renvoyez une chaîne contenant la totalité de la partie sélectionnée du document, y compris le balisage, par exemple les balises des éléments qui l’entourent.

    L’expression suivante agit sur le fichier HTML et sélectionne tout le contenu de la < \ title> balise, y compris le balisage.

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

    La partie du corps HTML sélectionnée par l’expression est marquée pour un traitement ultérieur.

    Paramètres :

    xpathex - Expression XPath

  • <text>.XPATH_JSON(xpathex)

    Opérez sur un fichier JSON et renvoyez une valeur booléenne.

    Par exemple, considérez le fichier JSON suivant :

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

    L’expression suivante fonctionne sur le fichier JSON et renvoie une valeur booléenne TRUE si le fichier JSON contient un nœud nommé « creator », dont le nœud parent est « Book », dans les 1000 premiers octets :

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

    Paramètres :

    xpathex - Expression booléenne XPath

  • <text>.XPATH_JSON(xpathex)

    Opérer sur un fichier JSON et renvoyer une valeur de type de données “double.”

    Par exemple, considérez le fichier JSON suivant :

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

    L’expression suivante fonctionne sur le fichier JSON et convertit la chaîne “36” en une valeur de type de données « double » si la chaîne est présente dans les 1000 premiers octets du fichier JSON.

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

    Paramètres :

    xpathex - Expression numérique XPath

  • <text>.XPATH_JSON(xpathex)

    Opérez sur un fichier JSON et renvoyez un ensemble de nœuds ou une chaîne. Les ensembles de nœuds sont convertis en chaînes correspondantes à l’aide de la routine de conversion de chaînes XPath standard.

    Par exemple, considérez le fichier JSON suivant :

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

    The following expression selects all the nodes that are enclosed by “/Book” (a node-set) in the first 1000 bytes of the body of the JSON file and returns the corresponding string value, which is “<name><title>”:

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

    Paramètres :

    xpathex - Expression XPath

  • <text>.XPATH_JSON_WITH_MARKUP(xpathex)

    Effectuez une opération sur un fichier XML et renvoyez une chaîne contenant la partie complète du document pour le nœud de résultat, y compris les balises des éléments inclus.

    Par exemple, considérez le fichier JSON suivant :

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

    The following expression operates on the JSON file and selects all the nodes that are enclosed by “/Book/creator” in the first 1000 bytes of the body, which is “creator:{ person:{ name:’<name>’ } }.”

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

    La partie du corps JSON sélectionnée par l’expression est marquée pour un traitement ultérieur.

    Paramètres :

    xpathex - Expression XPath

  • <text>.XPATH_WITH_MARKUP(xpathex):

    Effectuez une opération sur un fichier XML et renvoyez une chaîne contenant la partie complète du document pour le nœud de résultat, y compris les balises des éléments inclus.

    Par exemple, l’expression suivante opère sur un fichier XML et sélectionne tous les nœuds entourés par « /book/creator » dans les 1 000 premiers octets du corps.

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

    La partie du corps JSON sélectionnée par l’expression est marquée pour un traitement ultérieur.

    Paramètres :

    xpathex - Expression XPath

Expressions XPath et HTML, XML ou JSON