我目前正在学习如何使用Go(或golang)进行开发,但遇到一个奇怪的问题:
我尝试创建一个在HTML文件中查找的脚本,以获取每个脚本的所有源 标签。该脚本的目标是合并所有检索到的文件。
所以,这就是故事了:就目前而言,我能够获取每个JavaScript文件的内容,但是...我无法将它们串联起来...
您可以在我的脚本下方看到:
//Open main file
mainFilePath := "/path/to/my/file.html"
mainFileDir := path.Dir(mainFilePath)+"/"
mainFileContent, err := ioutil.ReadFile(mainFilePath)
if err == nil {
mainFileContent := string(mainFileContent)
var finalFileContent bytes.Buffer
//Start RegExp searching for JavaScript src
scriptReg, _ := regexp.Compile("<script src=\"(.*)\">")
scripts := scriptReg.FindAllStringSubmatch(mainFileContent,-1)
//For each SRC found...
for _, path := range scripts {
//We open the corresponding file
subFileContent, err := ioutil.ReadFile(mainFileDir+path[1])
if err == nil {
//And we add its content to the "final" variable
fmt.Println(finalFileContent.Write(subFileContent))
} else {
fmt.Println(err)
}
}
//Try to display the final result
// fmt.Println(finalFileContent.String())
fmt.Printf(">>> %#v", finalFileContent)
fmt.Println("Y U NO WORKS? :'(")
} else {
fmt.Println(err)
}
因此,每个fmt.Println(finalFileContent.Write(subFileContent))显示类似6161的东西,因此我假设Write()方法已正确执行。
但是fmt.Printf(">>> %#v", finalFileContent)什么也没显示。绝对不显示任何内容(甚至不会显示“ >>>”!)对于上面的注释行也是如此。
有趣的是,字符串“ YU NO WORK?:'(”正确显示了...
你知道为什么吗?您知道如何解决这个问题吗?
相关分类