HTML速学教程(入门课程)
HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!
php小编子墨在这里为大家介绍一个有关Golang的小技巧。在使用html.Parse解析HTML时,有时我们需要重写href的查询字符串,以包含&符号。这个技巧可以帮助我们在处理HTML链接时更加灵活和方便,提升开发效率。接下来,我们将详细讲解如何使用该技巧,并且给出示例代码,希望对大家有所帮助。
我有以下代码:
package main import ( "os" "strings" "golang.org/x/net/html" ) func main() { myhtmldocument := ` <a href="http://www.example.com/input?foo=bar&baz=quux">wtf</a> ` doc, _ := html.parse(strings.newreader(myhtmldocument)) html.render(os.stdout, doc) }
html.render 函数产生以下输出:
<a href="http://www.example.com/input?foo=bar&baz=quux">WTF</a>
为什么要重写查询字符串并将 &
转换为 &
(在 bar 和 baz 之间)?
有办法避免这种行为吗?
我正在尝试进行模板转换,但我不希望它破坏我的网址。
html.parse
想要生成有效的 html,并且 html 规范规定 href
属性中的与号必须进行编码。
https://www.w3.org/tr/xhtml1/guidelines .html#c_12
在 sgml 和 xml 中,与字符(“&”)声明实体引用的开始(例如,® 表示注册商标符号“®”)。不幸的是,许多 html 用户代理都默默地忽略了 html 文档中 & 符号的错误用法 - 将看起来不像实体引用的 & 符号视为文字 & 符号。基于 xml 的用户代理不会容忍这种不正确的使用,并且任何错误使用 & 符号的文档都将不是“有效的”,因此将不符合此规范。为了确保文档与历史 html 用户代理和基于 xml 的用户代理兼容,文档中使用的被视为文字字符的 & 符号必须将其自身表示为实体引用(例如“&”)。
例如,a元素的href属性引用带参数的cgi脚本时,必须表示为http://my.site.dom/cgi-bin/myscript.pl?class=guest& name=user
而不是 http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user
。
在这种情况下,go 实际上使您的 html 更好、更有效
话虽这么说 - 浏览器将对其进行转义,因此如果单击它,生成的 url 仍然是正确的(没有 &
,只有 &
:
console.log(document.queryselector('a').href)
<a href="http://www.example.com/input?foo=bar&baz=quux">WTF</a>
golang免费学习笔记(深入):立即学习
在学习笔记中,你将探索golang的核心概念和高级技巧!
已抢7336个
抢已抢95473个
抢已抢14936个
抢已抢52722个
抢已抢195929个
抢已抢87510个
抢