登录
首页 >  Golang >  Go问答

在 Go 中解析所有 HTML 表单

来源:stackoverflow

时间:2024-02-07 18:06:24 385浏览 收藏

从现在开始,努力学习吧!本文《在 Go 中解析所有 HTML 表单》主要讲解了等等相关知识点,我会在golang学习网中持续更新相关的系列文章,欢迎大家关注并积极留言建议。下面就先一起来看一下本篇正文内容吧,希望能帮到你!

问题内容

我想解析一个如下所示的表单:

我可以在 net/html 的帮助下解析这个特定的表单,但也许已经有一种方法可以将每个 html 表单解析为一个结构,我可以将其用于 request.postform()

例如,解析多选输入将非常困难。

有一个 python 库可以执行此操作。在此库的单元测试中,您会看到示例:test_html_form_to_dict.py


正确答案


这似乎可以做到:

package html

import (
   "encoding/xml"
   "io"
   "net/url"
)

type form struct {
   Input []struct {
      Name string `xml:"name,attr"`
      Value string `xml:"value,attr"`
   } `xml:"input"`
}

func newForm(r io.Reader) (*form, error) {
   f := new(form)
   err := xml.NewDecoder(r).Decode(f)
   if err != nil {
      return nil, err
   }
   return f, nil
}

func (f form) values() url.Values {
   val := make(url.Values)
   for _, input := range f.Input {
      val.Add(input.Name, input.Value)
   }
   return val
}

理论要掌握,实操不能落!以上关于《在 Go 中解析所有 HTML 表单》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>