Citrix 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 qui ont 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 les expressions XPath dans les expressions de réécriture.

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 une collection largement 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 une collection 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érer sur un fichier XML et renvoyer 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 1000 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>
  • <text>.XPATH(xpathex):

    Opérer sur un fichier XML et renvoyer un jeu 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 qui sont entourés par « /book/creator » (un ensemble de nœuds) dans les 1000 premiers octets du corps :

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

    Paramètres :

    xpathex - Expression XPath

  • <text>.XPATH_HTML(xpathex)

    Fonctionnez sur un fichier HTML et renvoyez une valeur de texte.

    Par exemple, l’expression suivante fonctionne sur un fichier HTML et renvoie le texte entouré de<title\></title\> balises 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)

    Fonctionnez 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 l’inclusion des balises d’élément englobant.

    L’expression suivante fonctionne sur le fichier HTML et sélectionne tout le contenu de la balise <\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érer sur un fichier JSON et renvoyer 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érer sur un fichier JSON et renvoyer un jeu 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>’ } }

    L’expression suivante sélectionne tous les nœuds qui sont entourés par « /Book » (un ensemble de nœuds) dans les 1000 premiers octets du corps du fichier JSON et renvoie la valeur de chaîne correspondante, qui est "<name><title>« :

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

    Paramètres :

    xpathex - Expression XPath

  • <text>.XPATH_JSON_WITH_MARKUP (xpathex)

    Fonctionnez sur un fichier XML et renvoyez une chaîne contenant toute la partie du document pour le nœud de résultat, y compris le balisage comme l’inclusion des balises d’élément englobant.

    Par exemple, considérez le fichier JSON suivant :

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

    L’expression suivante fonctionne sur le fichier JSON et sélectionne tous les nœuds qui sont entourés par « /book/creator » dans les 1000 premiers octets du corps, qui est “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) :

    Fonctionnez sur un fichier XML et renvoyez une chaîne contenant toute la partie du document pour le nœud de résultat, y compris le balisage comme l’inclusion des balises d’élément englobant.

    Par exemple, l’expression suivante fonctionne sur un fichier XML et sélectionne tous les nœuds entourés par « /book/creator » dans les 1000 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