在PHP中,我们可以使用DOMDocument类来生成XML站点地图,以下是一个简单的示例:
<?php header('Content-Type: application/xml; charset=utf-8'); $urlSet = array(); $file = scandir('.'); foreach ($file as $value) { if ($value == 'sitemap.php') continue; $url = "https://example.com/" . $value; $urlSet[] = '<url><loc>' . $url . '</loc><lastmod>' . date('Y-m-d H:i:s') . '</lastmod></url>'; } $dom = new DOMDocument('1.0', 'utf-8'); $root = $dom->createElement('urlset'); $root->setAttribute('xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9'); $dom->appendChild($root); foreach ($urlSet as $url) { $urlNode = $dom->createElement('url'); $urlNode->appendChild($dom->createCDATASection($url)); $root->appendChild($urlNode); } echo $dom->saveXML(); ?>
在Java中,我们可以使用JAXB库来生成XML站点地图,以下是一个简单的示例:
创建一个名为SitemapEntry的Java类,并添加以下代码:
import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import java.util.Date; @XmlRootElement(name = "url") public class SitemapEntry { private String loc; private Date lastmod; public String getLoc() { return loc; } @XmlElement(name = "loc") public void setLoc(String loc) { this.loc = loc; } public Date getLastmod() { return lastmod; } @XmlElement(name = "lastmod") public void setLastmod(Date lastmod) { this.lastmod = lastmod; } }
创建一个名为SitemapGenerator的类,并添加以下代码:
import java.io.FileWriter; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.List; import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javaxx.xml.bind.annotation.XmlType; import com.suncodemodel.JCodeModel; // 需要添加xjc库到项目依赖中,具体安装方法请参考官方文档:https://github.com/javaee/jaxb/blob/master/docs/xjcdevguide/index.html#running%20xjc%20from%20the%20command%20line%20or%20eclipse%20plugin%20project%20context%2Emenu%21-%E5%B1%9E%E6%80%A7%E4%BB%8B%E8%AF%AD%E8%A8%80%E3%80%82)public class Main { // 在Java代码中直接调用JAXB库的方法会报错,所以这里使用JCodeModel动态生成Java类public static void main(String[] args) throws Exception { // 将目录下的所有文件名转换为URL列表 List<String> urls = Files.walk(Paths.get("")) // 将URL列表转换为SitemapEntry对象列表 List<SitemapEntry> entries = urls//通过正则表达式匹配出所有网页的URL,并将其封装成SitemapEntry对象 List<SitemapEntry> sitemapEntries = urls//通过正则表达式匹配出所有网页的URL,并将其封装成SitemapEntry对象 List<SitemapEntry> sitemapEntries = urls//通过正则Expression匹配出所有网页的URL,并将其封装成SiteMap条目List<SitemapEntry> sitemapEntries = urls//通过正则Expression匹配到所有的网址集合List<String> urlSet = new ArrayList<>();for (String filePathStr:urls){ Path filePath= Paths
还没有评论,来说两句吧...