【发布时间】:2014-04-27 22:15:16
【问题描述】:
在我正在编写的一个小脚本中,我向 Web 服务发送 POST 并接收一个 HTML 文档作为响应。这份文档与我的需求基本无关,除了单个textarea 的内容。这个textarea 是页面中唯一的textarea,它有一个我提前知道的特定name。我想获取该文本而不用担心文档中的任何其他内容。目前我正在使用正则表达式来获取正确的行,然后删除标签,但我觉得可能有更好的方法。
文档如下所示:
<html><body>
<form name="query" action="http://www.example.net/action.php" method="post">
<textarea type="text" name="nameiknow"/>The text I want</textarea>
<div id="button">
<input type="submit" value="Submit" />
</div>
</form>
</body></html>
这是我目前获取文本的方式:
s := string(body)
// Gets the line I want
r, _ := regexp.Compile("<textarea.*name=(\"|')nameiknow(\"|').*textarea>")
s = r.FindString(s)
// Deletes the tags
r, _ = regexp.Compile("<[^>]*>")
s = r.ReplaceAllString(s, "")
我认为在这种情况下使用完整的 HTML 解析器可能有点过分,这就是我朝这个方向发展的原因,尽管据我所知,那里有更好的东西。
感谢您的任何建议。
【问题讨论】: