Citrix ADC

XPath- und HTML-, XML- oder JSON-Ausdrücke

Die erweiterte Richtlinieninfrastruktur unterstützt Ausdrücke zum Auswerten und Abrufen von Daten aus HTML-, XML- und JavaScript-Object Notation (JSON) -Dateien. Auf diese Weise können Sie bestimmte Knoten in einem HTML-, XML- oder JSON-Dokument suchen, feststellen, ob ein Knoten in der Datei vorhanden ist, Knoten in XML-Kontexten suchen (z. B. Knoten mit bestimmten Eltern oder ein bestimmtes Attribut mit einem bestimmten Wert) und den Inhalt dieser Knoten zurückgeben. Darüber hinaus können Sie XPath-Ausdrücke in Rewrite-Ausdrücken verwenden.

Die Implementierung des erweiterten Richtlinienausdrucks für XPath umfasst ein Präfix für erweiterte Richtlinienausdrücke (z. B. “HTTP.REQ.BODY”), das HTML- oder XML-Text bezeichnet, und den XPATH-Operator, der den XPath-Ausdruck als Argument verwendet.

HTML-Dateien sind eine weitgehend freie Sammlung von Tags und Textelementen. Sie können den XPATH_HTML-Operator verwenden, der einen XPath-Ausdruck als Argument verwendet, um HTML-Dateien zu verarbeiten. JSON-Dateien sind entweder eine Sammlung von Namen/Wert-Paaren oder eine geordnete Liste von Werten. Sie können den XPATH_JSON-Operator verwenden, der einen XPath-Ausdruck als Argument verwendet, um JSON-Dateien zu verarbeiten.

  • <text>.XPATH(xpathex):

    Verwenden Sie eine XML-Datei und geben Sie einen booleschen Wert zurück.

    Der folgende Ausdruck gibt beispielsweise einen booleschen TRUE zurück, wenn ein Knoten namens “creator” innerhalb der ersten 1000 Byte der XML-Datei unter dem Knoten “Book” existiert.

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

    Parameter:

    xpathex - XPath Boolescher Ausdruck

  • <text>.XPATH(xpathex):

    Arbeiten Sie auf einer XML-Datei und geben Sie einen Wert des Datentyps “double. “

    Der folgende Ausdruck konvertiert beispielsweise die Zeichenfolge “36” (ein Preiswert) in einen Wert vom Datentyp “double”, wenn sich die Zeichenfolge in den ersten 1000 Byte der XML-Datei befindet:

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

    Parameter:

    xpathex - XPath - numerischer Ausdruck

Beispiel:

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

    Arbeiten Sie an einer XML-Datei und geben Sie einen Knotensatz oder eine Zeichenfolge zurück. Knotensätze werden mit der Standard-XPath-String-Konvertierungsroutine in entsprechende Strings konvertiert.

    Der folgende Ausdruck wählt beispielsweise alle Knoten aus, die von “/book/creator” (einem Knotensatz) in den ersten 1000 Bytes des Körpers eingeschlossen sind:

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

    Parameter:

    xpathex - XPath-Ausdruck

  • <text>.XPATH_HTML(xpathex)

    Arbeiten Sie an einer HTML-Datei und geben Sie einen Textwert zurück.

    Der folgende Ausdruck funktioniert beispielsweise für eine HTML-Datei und gibt den Text zurück, der in <title\></title\> Tags eingeschlossen ist, wenn das title-HTML-Element in den ersten 1000 Bytes gefunden wird:

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

    Parameter:

    xpathex - XPath-Textausdruck

  • <text>.XPATH_HTML_WITH_MARKUP(xpathex)

    Arbeiten Sie an einer HTML-Datei und geben Sie eine Zeichenfolge zurück, die den gesamten ausgewählten Teil des Dokuments enthält, einschließlich Markups, z. B. das Einschließen der umschließenden Element-Tags.

    Der folgende Ausdruck wirkt auf die HTML-Datei und wählt den gesamten Inhalt innerhalb des <\title>-Tags, einschließlich Markup.

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

    Der durch den Ausdruck ausgewählte Teil des HTML-Body wird zur weiteren Verarbeitung markiert.

    Parameter:

    xpathex - XPath-Ausdruck

  • <text>.XPATH_JSON(xpathex)

    Arbeiten Sie an einer JSON-Datei und geben Sie einen booleschen Wert zurück.

    Betrachten Sie beispielsweise die folgende JSON-Datei:

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

    Der folgende Ausdruck arbeitet für die JSON-Datei und gibt einen booleschen TRUE zurück, wenn die JSON-Datei einen Knoten namens “creator” enthält, dessen übergeordneter Knoten “Book” in den ersten 1000 Bytes lautet:

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

    Parameter:

    xpathex - XPath Boolescher Ausdruck

  • <text>.XPATH_JSON(xpathex)

    Arbeiten Sie auf einer JSON-Datei und geben Sie einen Wert vom Datentyp “double. “

    Betrachten Sie beispielsweise die folgende JSON-Datei:

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

    Der folgende Ausdruck arbeitet für die JSON-Datei und konvertiert die Zeichenfolge “36” in einen Wert vom Datentyp “double”, wenn die Zeichenfolge in den ersten 1000 Bytes der JSON-Datei vorhanden ist.

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

    Parameter:

    xpathex - XPath - numerischer Ausdruck

  • <text>.XPATH_JSON(xpathex)

    Arbeiten Sie an einer JSON-Datei und geben Sie einen Knotensatz oder eine Zeichenfolge zurück. Knotensätze werden mit der Standard-XPath-String-Konvertierungsroutine in entsprechende Strings konvertiert.

    Betrachten Sie beispielsweise die folgende JSON-Datei:

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

    Der folgende Ausdruck wählt alle Knoten, die von "/Book" (einem Knotensatz) in den ersten 1000 Bytes des Hauptteils der JSON-Datei eingeschlossen sind, und gibt den entsprechenden Zeichenfolgenwert zurück, der "<name><title>:” ist.

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

    Parameter:

    xpathex - XPath-Ausdruck

  • <text>XPATH_JSON_WITH_MARKUP (xpathex)

    Verwenden Sie eine XML-Datei, und geben Sie eine Zeichenfolge zurück, die den gesamten Teil des Dokuments für den Ergebnisknoten enthält, einschließlich Markups, z. B. das Einschließen der umschließenden Element-Tags.

    Betrachten Sie beispielsweise die folgende JSON-Datei:

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

    Der folgende Ausdruck arbeitet auf der JSON-Datei und wählt alle Knoten aus, die von “/book/creator” in den ersten 1000 Bytes des Körpers eingeschlossen sind, also “creator: {person: {name: <name> ‘}}. “

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

    Der Teil des JSON-Body, der durch den Ausdruck ausgewählt wird, wird zur weiteren Verarbeitung markiert.

    Parameter:

    xpathex - XPath-Ausdruck

  • <text>XPATH_WITH_MARKUP (xpathex):

    Verwenden Sie eine XML-Datei, und geben Sie eine Zeichenfolge zurück, die den gesamten Teil des Dokuments für den Ergebnisknoten enthält, einschließlich Markups, z. B. das Einschließen der umschließenden Element-Tags.

    Der folgende Ausdruck arbeitet beispielsweise mit einer XML-Datei und wählt alle Knoten aus, die von “/book/creator” in den ersten 1000 Byte des Hauptteils eingeschlossen sind.

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

    Der Teil des JSON-Body, der durch den Ausdruck ausgewählt wird, wird zur weiteren Verarbeitung markiert.

    Parameter:

    xpathex - XPath-Ausdruck

XPath- und HTML-, XML- oder JSON-Ausdrücke