Beispiel
golang.org/x/net v0.51.0: html.ElementNode
Verifiziertes Beispiel für golang golang.org/x/net v0.51.0: html.ElementNode. Der Vertrag lief auf go 1.26 · linux alpine/x64 · docker und bestand.
sha256:404270ca27ee77e87f19da78a7a85dc7666432599a065ef986af98a864562e47
Dieses Netzwerk bietet eine Sache: ein Sample, das baut. Es hat es in einer Sandbox ausgeführt und die signierte Quittung behalten. Es bewertet nichts und garantiert nichts — ob derselbe Code bei Ihnen baut, hat es nicht gemessen.
Wie viele verschiedene Signaturschlüssel eine bestandene Vertragsquittung eingereicht haben. Einer ist der Autor allein; mehr als einer heißt, jemand anderes hat es auch gebaut. Ein Schlüssel wird selbst erzeugt und hat keine registrierte Identität dahinter — gezählt werden Schlüssel, nicht Personen.
MIT-0
Ausführungsbelege
Die deklarierte Umgebung und die signierten Läufe stehen getrennt, damit Sie genau sehen, was dieses Sample ausgeführt hat und wo.
- Beleggrundlage
- Signierter Vertrag bestanden
- Verifizierungsbelege
- 1
- Signaturschlüssel, die es gebaut haben
- 1
Deklarierte Umgebung
linux 24 · ubuntu · glibc 2.39 x64 go
Umgebungen der Verifizierungsläufe
| Umgebung | Contract | Stufen | Lauf |
|---|---|---|---|
| go 1.26 · linux alpine/x64 · docker ed25519:c1973797be207ac4 | PASS | compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS CONTAINER_RUN · golang@1golang:1.26-alpine@sha256:28d89ee9cc0f… |
2026-08-30 |
Fall
HOW- Ziel
- verify golang.org/x/net/html.ElementNode in pkg:golang/golang.org/x/net@v0.51.0
- Pakete
- Symbole
-
- golang.org/x/net/html.ElementNode
- Erstellt
- 2026-08-30T17:53:47Z
Contract
- html.Parse identifies HTML tag elements with NodeType equal to html.ElementNode and populates Data with the tag name
- html.ElementNode nodes contain Attr slice with parsed key-value attribute pairs
- Programmatically constructed nodes with html.ElementNode render properly formatted opening and closing tags via html.Render
- DOM tree traversal distinguishes html.ElementNode from other node types such as html.TextNode, html.CommentNode, and html.DocumentNode
Dateien
- PROMPT.md
- csx.json
- go.mod
- go.sum
- main.go
- spec.json
- test/contract.go
Quelltext
Clean-room public code sample — generation instructions
Write a brand-new, minimal, self-contained code sample in this clean-room directory.
Do not copy, paraphrase, or reference any existing project source. Work only from this spec.
A csx.json manifest scaffold already exists. Do not recreate it from memory. Preserve its case.goal, packages and symbols; fill its empty case.contract with exact assertions and correct its environment, commands and verifierAdapter for the files you generate.
Goal: verify golang.org/x/net/html.ElementNode in pkg:golang/golang.org/x/net@v0.51.0
Kind: HOW
Use EXACTLY these public packages and versions:
- pkg:golang/golang.org/x/net@v0.51.0
Demonstrate these symbols/APIs:
- golang.org/x/net/html.ElementNode
Rules:
- One focused purpose; the smallest project that proves the goal.
- Include a contract test (test/contract.*) that runs OFFLINE and exits 0 exactly when the goal behavior works.
- Pin every dependency with a lockfile so resolution is reproducible.
- No secrets, credentials, or tokens. No real URLs (only example.com or localhost). No absolute paths.
- No personal names, emails, company names, or project identifiers of any kind.
- No binaries and no generated output (node_modules, dist, target, venv, .git, .env).
- Keep it under 200 files and 256KB packed.
{"case":{"caseId":"case:sha256:71bcaa7604ba086e004e7c5211c6ba1445a8e7afc47e5bbb7f4ee2a8d711a758","contract":["html.Parse identifies HTML tag elements with NodeType equal to html.ElementNode and populates Data with the tag name","html.ElementNode nodes contain Attr slice with parsed key-value attribute pairs","Programmatically constructed nodes with html.ElementNode render properly formatted opening and closing tags via html.Render","DOM tree traversal distinguishes html.ElementNode from other node types such as html.TextNode, html.CommentNode, and html.DocumentNode"],"goal":"verify golang.org/x/net/html.ElementNode in pkg:golang/golang.org/x/net@v0.51.0","kind":"HOW","packages":["pkg:golang/golang.org/x/net@v0.51.0"],"schemaVersion":1,"symbols":["golang.org/x/net/html.ElementNode"]},"contractCommand":["go","run","./test"],"environment":{"arch":"x64","distro":"ubuntu","ecosystem":"golang","libc":"glibc","libcVersion":"2.39","os":"linux","osVersionBucket":"24","packageManager":"go","schemaVersion":1},"license":"MIT-0","packages":["pkg:golang/golang.org/x/net@v0.51.0"],"schemaVersion":1,"subject":"pkg:golang/golang.org/x/net@v0.51.0","symbols":["golang.org/x/net/html.ElementNode"],"verifierAdapter":"golang@1"}
module sample
go 1.25.0
require golang.org/x/net v0.51.0
golang.org/x/net v0.51.0 h1:94R/GTO7mt3/4wIKpcR5gkGmRLOuE/2hNGeWq/GBIFo=
golang.org/x/net v0.51.0/go.mod h1:aamm+2QF5ogm02fjy5Bb7CQ0WMt1/WVM7FtyaTLlA9Y=
package main
import (
"bytes"
"fmt"
"strings"
"golang.org/x/net/html"
)
// ExtractElements recursively collects all nodes with Type == html.ElementNode.
func ExtractElements(n *html.Node) []*html.Node {
var elements []*html.Node
if n == nil {
return elements
}
if n.Type == html.ElementNode {
elements = append(elements, n)
}
for c := n.FirstChild; c != nil; c = c.NextSibling {
elements = append(elements, ExtractElements(c)...)
}
return elements
}
// FindElementByTag finds the first ElementNode with the given tag name.
func FindElementByTag(n *html.Node, tag string) *html.Node {
if n == nil {
return nil
}
if n.Type == html.ElementNode && n.Data == tag {
return n
}
for c := n.FirstChild; c != nil; c = c.NextSibling {
if found := FindElementByTag(c, tag); found != nil {
return found
}
}
return nil
}
// GetAttribute returns the value of an attribute on an ElementNode.
func GetAttribute(n *html.Node, key string) (string, bool) {
if n == nil || n.Type != html.ElementNode {
return "", false
}
for _, attr := range n.Attr {
if attr.Key == key {
return attr.Val, true
}
}
return "", false
}
func main() {
rawHTML := `<div class="container"><a href="https://example.com" id="link-1">Example</a><p>Content</p></div>`
doc, err := html.Parse(strings.NewReader(rawHTML))
if err != nil {
panic(err)
}
elements := ExtractElements(doc)
fmt.Printf("Total ElementNode count: %d\n", len(elements))
link := FindElementByTag(doc, "a")
if link != nil {
href, _ := GetAttribute(link, "href")
fmt.Printf("Found tag <%s> with href=%s\n", link.Data, href)
}
// Programmatic creation of an ElementNode
customNode := &html.Node{
Type: html.ElementNode,
Data: "span",
Attr: []html.Attribute{
{Key: "class", Val: "highlight"},
},
}
customNode.AppendChild(&html.Node{
Type: html.TextNode,
Data: "Hello World",
})
var buf bytes.Buffer
if err := html.Render(&buf, customNode); err != nil {
panic(err)
}
fmt.Printf("Rendered element: %s\n", buf.String())
}
{
"schemaVersion": 1,
"goal": "verify golang.org/x/net/html.ElementNode in pkg:golang/golang.org/x/net@v0.51.0",
"kind": "HOW",
"packages": [
"pkg:golang/golang.org/x/net@v0.51.0"
],
"symbols": [
"golang.org/x/net/html.ElementNode"
]
}
package main
import (
"bytes"
"fmt"
"os"
"strings"
"golang.org/x/net/html"
)
func main() {
// 1. html.Parse identifies HTML tag elements with NodeType equal to html.ElementNode and populates Data with the tag name
{
doc, err := html.Parse(strings.NewReader("<div><p>Paragraph</p><span>Span</span></div>"))
if err != nil {
fmt.Fprintf(os.Stderr, "FAIL: html.Parse returned error: %v\n", err)
os.Exit(1)
}
var tags []string
var walk func(*html.Node)
walk = func(n *html.Node) {
if n.Type == html.ElementNode {
tags = append(tags, n.Data)
}
for c := n.FirstChild; c != nil; c = c.NextSibling {
walk(c)
}
}
walk(doc)
expectedTags := []string{"html", "head", "body", "div", "p", "span"}
if len(tags) != len(expectedTags) {
fmt.Fprintf(os.Stderr, "FAIL: expected %d element tags, got %d: %v\n", len(expectedTags), len(tags), tags)
os.Exit(1)
}
for i, expected := range expectedTags {
if tags[i] != expected {
fmt.Fprintf(os.Stderr, "FAIL: tag[%d] expected %q, got %q\n", i, expected, tags[i])
os.Exit(1)
}
}
}
// 2. html.ElementNode nodes contain Attr slice with parsed key-value attribute pairs
{
doc, err := html.Parse(strings.NewReader(`<a href="https://example.com/api" target="_blank" rel="noopener">Link</a>`))
if err != nil {
fmt.Fprintf(os.Stderr, "FAIL: html.Parse returned error: %v\n", err)
os.Exit(1)
}
var anchor *html.Node
var walk func(*html.Node)
walk = func(n *html.Node) {
if n.Type == html.ElementNode && n.Data == "a" {
anchor = n
return
}
for c := n.FirstChild; c != nil; c = c.NextSibling {
walk(c)
}
}
walk(doc)
if anchor == nil {
fmt.Fprintf(os.Stderr, "FAIL: anchor element not found\n")
os.Exit(1)
}
attrMap := make(map[string]string)
for _, attr := range anchor.Attr {
attrMap[attr.Key] = attr.Val
}
if attrMap["href"] != "https://example.com/api" {
fmt.Fprintf(os.Stderr, "FAIL: expected href 'https://example.com/api', got %q\n", attrMap["href"])
os.Exit(1)
}
if attrMap["target"] != "_blank" {
fmt.Fprintf(os.Stderr, "FAIL: expected target '_blank', got %q\n", attrMap["target"])
os.Exit(1)
}
if attrMap["rel"] != "noopener" {
fmt.Fprintf(os.Stderr, "FAIL: expected rel 'noopener', got %q\n", attrMap["rel"])
os.Exit(1)
}
}
// 3. Programmatically constructed nodes with html.ElementNode render properly formatted opening and closing tags via html.Render
{
elem := &html.Node{
Type: html.ElementNode,
Data: "section",
Attr: []html.Attribute{
{Key: "id", Val: "feature"},
{Key: "class", Val: "primary card"},
},
}
elem.AppendChild(&html.Node{
Type: html.TextNode,
Data: "Section Body",
})
var buf bytes.Buffer
if err := html.Render(&buf, elem); err != nil {
fmt.Fprintf(os.Stderr, "FAIL: html.Render failed: %v\n", err)
os.Exit(1)
}
expected := `<section id="feature" class="primary card">Section Body</section>`
if buf.String() != expected {
fmt.Fprintf(os.Stderr, "FAIL: rendered HTML mismatch:\nexpected: %s\ngot: %s\n", expected, buf.String())
os.Exit(1)
}
}
// 4. DOM tree traversal distinguishes html.ElementNode from other node types such as html.TextNode, html.CommentNode, and html.DocumentNode
{
doc, err := html.Parse(strings.NewReader(`<!-- notice --><div>text</div>`))
if err != nil {
fmt.Fprintf(os.Stderr, "FAIL: html.Parse returned error: %v\n", err)
os.Exit(1)
}
typeCounts := make(map[html.NodeType]int)
var walk func(*html.Node)
walk = func(n *html.Node) {
typeCounts[n.Type]++
for c := n.FirstChild; c != nil; c = c.NextSibling {
walk(c)
}
}
walk(doc)
if typeCounts[html.DocumentNode] < 1 {
fmt.Fprintf(os.Stderr, "FAIL: expected at least 1 DocumentNode, got %d\n", typeCounts[html.DocumentNode])
os.Exit(1)
}
if typeCounts[html.ElementNode] < 4 { // html, head, body, div
fmt.Fprintf(os.Stderr, "FAIL: expected at least 4 ElementNodes, got %d\n", typeCounts[html.ElementNode])
os.Exit(1)
}
if typeCounts[html.CommentNode] < 1 {
fmt.Fprintf(os.Stderr, "FAIL: expected at least 1 CommentNode, got %d\n", typeCounts[html.CommentNode])
os.Exit(1)
}
if typeCounts[html.TextNode] < 1 {
fmt.Fprintf(os.Stderr, "FAIL: expected at least 1 TextNode, got %d\n", typeCounts[html.TextNode])
os.Exit(1)
}
}
fmt.Println("PASS: all contract assertions passed")
}
Ursprungs-Seeder
anonym