.net core将URL请求格式化为XML或JSON(网站动态生成sitemap.xml)
.net core将URL请求格式化为XML或JSON(网站动态生成sitemap.xml)
首先设置 Startup.cs
文件
- 配置
ConfigureServices
services
.AddMvc(options =>
{
options.RespectBrowserAcceptHeader = true;
options.OutputFormatters.Add(new XmlSerializerOutputFormatter());
options.FormatterMappings.SetMediaTypeMappingForFormat("xml", Microsoft.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/xml"));
options.FormatterMappings.SetMediaTypeMappingForFormat("config", Microsoft.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/xml"));
options.FormatterMappings.SetMediaTypeMappingForFormat("js", Microsoft.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"));
})
.AddXmlSerializerFormatters()
.AddDataAnnotationsLocalization()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
例子:生成sitemap.xml
- 返回值
Urlset
using System.Collections.Generic;
using System.Xml.Serialization;
namespace MyFramework.Services.Sitemaps.Dtos
{
[XmlRoot(Namespace = "http://www.sitemaps.org/schemas/sitemap/0.9")]
[XmlType("urlset")]
public class Urlset
{
[XmlElement("url")]
public List<Url> Urls { get; set; }
}
}
using System.Xml.Serialization;
namespace MyFramework.Services.Sitemaps.Dtos
{
[XmlType("url")]
public class Url
{
public string loc { get; set; }
public string priority { get; set; }
public string lastmod { get; set; }
public string changefreq { get; set; }
}
}
GetUrlset
方法
using MyFramework.Services.Sitemaps.Dtos;
using System;
using System.Collections.Generic;
namespace MyFramework.Services.Sitemaps
{
public class SitemapService : ServiceBaseModule, ISitemapService
{
public Urlset GetUrlset()
{
var __baseUrl = new List<Url>
{
new Url{ loc="http://www.mywebsite.com",priority="1.00",lastmod= DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"),changefreq="weekly"},
new Url{ loc="http://www.mywebsite.com/Home",priority="1.00",lastmod= DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"),changefreq="weekly"},
new Url{ loc="http://www.mywebsite.com/Home/Index.html",priority="1.00",lastmod= DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"),changefreq="weekly"},
};
for (var i = 0; i < 10; i++)
{
__baseUrl.Add(new Url { loc = "http://www.mywebsite.com/news/news-" + i + ".html", priority = "1.00", lastmod = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"), changefreq = "daily" });
}
var __urlset = new Urlset
{
Urls = __baseUrl
};
return __urlset;
}
}
}
SitemapController
Controller
using Microsoft.AspNetCore.Mvc;
using MyFramework.Services.Sitemaps;
using MyFramework.Services.Sitemaps.Dtos;
namespace MyFramework.Web.Api.Controllers
{
[Route("")]
[ApiController]
public class SitemapController : ControllerBase
{
#region Initialize
private readonly ISitemapService _sitemapService;
public SitemapController(ISitemapService sitemapService)
{
_sitemapService = sitemapService;
}
#endregion
#region Methods
[HttpGet("sitemap.{format}"), FormatFilter]
public Urlset GetSitemap()
{
return _sitemapService.GetUrlset();
}
#endregion
}
}
最终效果如图
.net core将URL请求格式化为XML或JSON(网站动态生成sitemap.xml)的更多相关文章
- sitemap.xml 静态和动态生成页面 shopnc二次开发 动态生成sitemap.xml
Sitemap 可方便网站管理员通知搜索引擎他们网站上有哪些可供抓取的网页.最简单的 Sitemap 形式,就是XML 文件,在其中列出网站中的网址以及关于每个网址的其他元数据(上次更新的时间.更改的 ...
- 帝国CMS如何自动生成sitemap.xml网站地图文件
登录网站的后台http://你的域名/e/admin/ 进入后台栏目 =>增加自定义页面 =>选择直接页面,页面名称为:网站地图,文件名修改为 ../../sitemap.xml 内容填 ...
- 网站robots.txt & sitemap.xml
1. 如何查看网站的robots.txt 网址/robots.txt, 比如小米 https://www.mi.com/robots.txt sitemap.xml
- AJAX请求返回JSON数据动态生成html
1:DeliveryPersonVO对象 package com.funcanteen.business.entity.delivery.vo; import java.util.List; impo ...
- php动态生成一个xml文件供swf调用
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdo ...
- 根据xml配置使用反射动态生成对象
web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="htt ...
- 请求*.html后缀无法返回json数据的问题
在springmvc中请求*.html不可以返回json数据. 修改web.xml,添加url拦截格式.
- C# XML与Json之间相互转换实例详解
对于这转换其实很简单,其中最重要的就是先要引用类库.可以到官网进行下载引用http://json.codeplex.com. XML转换为Json字符串 string xml = @"< ...
- WordPress免插件生成完整站点地图(sitemap.xml)的php代码
让这个代码更加完善,可以同时生成首页.文章.单页面.分类和标签的 sitemap! 一.PHP 代码 <?php require('./wp-blog-header.php'); header( ...
随机推荐
- PHP7.2.6安装sodium扩展
安装libsodium libsodium是安装sodium扩展的必须依赖条件,我这里提供两种安装方式,编译和直接yum 编译安装libsodium wget https://github.com/j ...
- Linux shell if条件判断2
前面介绍linux shell的if判断的语法,现在再补充一点. Linux shell if条件判断1 分支判断结构 if , case 下面两个结构语法,已经在前面有过示例. 结构1: ...
- javascript之DOM(四其他类型)
一.Text类型 文本节点由Text类型表示,指的是可以以字面意思解释的纯文本内容,其中包含HTML代码. nodeType=3 nodeName=#text nodeValue=文本内容 paren ...
- Nginx 核心配置-自定义错误页面
Nginx 核心配置-自定义错误页面 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 生产环境中错误页面一般都是UI或开发工程师提供的,他们已经在软件中定义好了,我们这里就简单写个h ...
- 【Tomcat】使用Eclipse绑定Tomcat 发布应用&&常见错误
创建时间:6.14 一.Eclipse绑定Tomcat 步骤1:获得服务器运行环境配置,Window/Preferences/Server/Runtime Environment 步骤2:添加服务器 ...
- Python面试题(2)
1.一行代码实现1-100的和 ? 1 2 3 print(sum(range(1,101))) #range中的参数是1<=i<101 #sum是计算参数的和 2.在函数内部改变全局变量 ...
- NOIP 2003 栈
洛谷 P1044 栈 洛谷传送门 JDOJ 1291: [NOIP2003]栈 T3 JDOJ传送门 题目描述 栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表. 栈有两 ...
- 【mybatis】清空数据库表数据
<update id="truncateTable"> truncate table ${tableName} </update> <update i ...
- ESA2GJK1DH1K基础篇: 移植官方MQTT包,让TCP实现MQTT功能(以GPRS模块为例)
前言 这节代码将在这一节的基础上实现 拷贝第一节测试里面的MQTT文件夹到当前工程 当前工程建个MQTT的文件夹,用于存放那个MQTT文件夹里面的内容 添加文件到里面 注意:::: 实际源码拷贝位置 ...
- #lua中编写shader的方式
lua中编写shader的方式 1. 字符串拼接 类似于下面这种 vertDefaultSource = "\n".."\n" .. "attribu ...