Go言語(golang) ResolveReferenceを使って相対URLを絶対URLにする
go言語の net/url
パッケージにある ResolveReference
関数を使ってページの相対リンクを絶対URLにする
package main import ( "fmt" "log" "net/url" ) func main() { a := []string{ "https://example.com/001/002.html", // ベースとなるWebページのURL "/foo/bar/", // base タグの href に指定してあるURL "baz/003.html", // アンカータグの href に指定されている相対URL } var abs *url.URL for i, v := range a { u, err := url.Parse(v) if err != nil { log.Fatal(err) } if i > 0 { abs = abs.ResolveReference(u) } else { abs = u } } fmt.Println(abs.String()) // https://example.com/foo/bar/baz/003.html }