Heim > Backend-Entwicklung > Golang > Wie extrahiere ich Aktionslisten aus einer geparsten Go-Vorlage?

Wie extrahiere ich Aktionslisten aus einer geparsten Go-Vorlage?

Linda Hamilton
Freigeben: 2024-12-16 12:12:11
Original
581 Leute haben es durchsucht

How to Extract Action Lists from a Parsed Go Template?

Erhalten einer Aktionsliste aus einer geparsten Vorlage

Frage:

Wie kann ich abrufen eine Liste von Vorlagenaktionen (z. B. die durch {{ .blahblah }} definierten) aus einem analysierten Vorlage?

Vorwort:

Das Feld „Template.Tree“ sollte, wie bereits erwähnt, nicht für die Eingabebereitstellung bei der Vorlagenausführung herangezogen werden. Es ist wichtig, die Vorlage und ihre erwarteten Daten im Voraus zu definieren.

Lösung:

Um eine analysierte Vorlage zu überprüfen, navigieren Sie durch deren Analysebaum (template.Template.Tree). . Knoten in diesem Baum repräsentieren verschiedene Elemente, einschließlich Vorlagenaktionen. Hier konzentrieren wir uns auf Knoten vom Typ parse.NodeAction (Als Felder ausgewertete Aktionen).

Codebeispiel:

Der folgende Code durchläuft den Analysebaum rekursiv, um Knoten zu identifizieren mit der NodeAction Typ:

func ListTemplFields(t *template.Template) []string {
    return listNodeFields(t.Tree.Root, nil)
}

func listNodeFields(node parse.Node, res []string) []string {
    if node.Type() == parse.NodeAction {
        res = append(res, node.String())
    }

    if ln, ok := node.(*parse.ListNode); ok {
        for _, n := range ln.Nodes {
            res = listNodeFields(n, res)
        }
    }
    return res
}
Nach dem Login kopieren

Verwendung:

Rufen Sie die ListTemplFields-Funktion für eine analysierte Vorlage auf, um eine Liste von Aktionstoken abzurufen:

t := template.Must(template.New("cooltemplate").
    Parse(`<h1>{{ .name }} {{ .age }}</h1>`))
fmt.Println(ListTemplFields(t))
Nach dem Login kopieren

Ausgabe:

Die Ausgabe für die bereitgestellte Vorlage wird sein:

[{{.name}} {{.age}}]
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie extrahiere ich Aktionslisten aus einer geparsten Go-Vorlage?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage