sitemap.xml生成(go语言版)

遍历一个文件夹及其子目录下的html文件,生成sitemap.xml

go 复制代码
package main

import (
	"fmt"
	"os"
	"path/filepath"
	"strings"
)

func main() {
	// 指定要遍历的文件夹
	htmlDir := `E:\workPlace\project\AITools\web-ssg\.output\public`

	// 创建sitemap.xml文件
	smFile, err := os.Create("sitemap.xml")
	if err != nil {
		fmt.Println("Error creating sitemap.xml:", err)
		return
	}
	defer smFile.Close()

	// 写入sitemap.xml文件的头部
	smFile.WriteString(`<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
`)

	// 遍历HTML文件,生成sitemap.xml文件的内容
	err = filepath.Walk(htmlDir, func(path string, info os.FileInfo, err error) error {
		if err != nil {
			return err
		}

		if !info.IsDir() && strings.HasSuffix(info.Name(), ".html") {
			relPath, err := filepath.Rel(htmlDir, path)
			if err != nil {
				return err
			}

			// 获取文件的修改时间
			lastmod := info.ModTime().Format("2006-01-02")

			// 写入sitemap.xml文件的内容
			smFile.WriteString(fmt.Sprintf(`<url>
    <loc>https://www.toolsj.cn/%s</loc>
    <lastmod>%s</lastmod>
</url>
`, relPath, lastmod))
		}

		return nil
	})

	if err != nil {
		fmt.Println("Error walking through directory:", err)
		return
	}

	// 写入sitemap.xml文件的尾部
	smFile.WriteString(`</urlset>
`)

	fmt.Println("sitemap.xml generated successfully.")
}
相关推荐
keyborad pianist2 分钟前
Web开发 Day1
开发语言·前端·css·vue.js·前端框架
坚持就完事了3 分钟前
Python的类型注解
开发语言·python
wjs202413 分钟前
HTML URL 编码
开发语言
wjs202418 分钟前
Lua 循环
开发语言
Evand J27 分钟前
matlab GUI制作界面的一些笔记(入门)
开发语言·笔记·matlab
我是大猴子27 分钟前
Java面经
java·开发语言
Never_Satisfied36 分钟前
在c#中,如何删除字符串中的第x个字符
开发语言·c#
_nirvana_w_38 分钟前
Qt项目链接库时遇到的坑:-l选项的正确用法
开发语言·c++·qt·qt框架·elawidgettools
froginwe1140 分钟前
数据访问对象模式(Data Access Object Pattern)
开发语言
我命由我1234542 分钟前
Visual Studio - Visual Studio 修改项目的字符集
c语言·开发语言·c++·ide·学习·visualstudio·visual studio