• Generate google sitemap xml


    方式一、

     XNamespace xNamespace = "http://www.sitemaps.org/schemas/sitemap/0.9";
                XNamespace xhtml = "http://www.w3.org/1999/xhtml";
                XElement root = new XElement(
                    xNamespace + "urlset",
                    new XAttribute("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9"),
                    new XAttribute(XNamespace.Xmlns + "xhtml", "http://www.w3.org/1999/xhtml"),
                        new XElement(
                      xNamespace.GetName("url"),// + "url"
                            new XElement(xNamespace.GetName("loc"), "http://www.example.com/english/page.html"),
                            new XElement(xhtml + "link",
                                new XAttribute("rel", "alternate"),
                                new XAttribute("hreflang", "de"),
                                new XAttribute("href", "http://www.example.com/deutsch/page.html"))
                        )
                    );
                Console.WriteLine(root);

    方式二、

    XNamespace xNamespace = "http://www.sitemaps.org/schemas/sitemap/0.9";
                XNamespace xhtml = "http://www.w3.org/1999/xhtml";
    
    
                XElement root = new XElement(xNamespace + "urlset");
                root.SetAttributeValue("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9");
                root.SetAttributeValue(XNamespace.Xmlns + "xhtml", "http://www.w3.org/1999/xhtml");
    
    
                ////创建子节点
                XElement url = new XElement(xNamespace.GetName("url"));
                url.SetElementValue(xNamespace.GetName("loc"), "https://translate.google.cn");
                url.SetElementValue(xNamespace.GetName("lastmod"), "2018-10-22");
                url.SetElementValue(xNamespace.GetName("changefreq"), "monthly");
                url.SetElementValue(xNamespace.GetName("priority"), "0.9");
    
                //xhtml:link 
                XElement twlink = new XElement(xhtml + "link");
                twlink.SetAttributeValue("rel", "alternate");
                twlink.SetAttributeValue("hreflang", "zh-tw");
                twlink.SetAttributeValue("href", "https://translate.google.cn");
                url.Add(twlink);
    
                XElement uslink = new XElement(xhtml + "link");
                uslink.SetAttributeValue("rel", "alternate");
                uslink.SetAttributeValue("hreflang", "en-tw");
                uslink.SetAttributeValue("href", "https://translate.google.cn");
                url.Add(uslink);
                //添加节点到父节点,添加根节点到对象
                root.Add(url);
                Console.WriteLine(root);

    控制台打印效果:(生成文件也是一样的)

    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
      <url>
        <loc>http://www.example.com/english/page.html</loc>
        <xhtml:link rel="alternate" hreflang="de" href="http://www.example.com/deutsch/page.html" />
      </url>
    </urlset>
    -------------------------
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
      <url>
        <loc>https://translate.google.cn</loc>
        <lastmod>2018-10-22</lastmod>
        <changefreq>monthly</changefreq>
        <priority>0.9</priority>
        <xhtml:link rel="alternate" hreflang="zh-tw" href="https://translate.google.cn" />
        <xhtml:link rel="alternate" hreflang="en-tw" href="https://translate.google.cn" />
      </url>
    </urlset>

    参考资料:


    https://support.google.com/webmasters/answer/75712?hl=zh-Hant&ref_topic=4581190
    https://support.google.com/webmasters/answer/189077?hl=zh-Hant&ref_topic=2370587&visit_id=636757708970115411-988286469&rd=1
    https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/how-to-create-a-document-with-namespaces-linq-to-xml
    https://stackoverflow.com/questions/34671195/how-to-format-xml-using-linq
    https://stackoverflow.com/questions/23223014/video-sitemap-colon-in-name-using-linq-to-xml

  • 相关阅读:
    nginx路径详解
    负载均衡
    http中消息头的安全配置及工作原理
    Tomcat的ErrorPage实现原理分析及阀门ErrorReportValve
    Tomcat中Logger组件
    NIO在Tomcat中的应用
    vue中强制生效css样式
    k8s中的Ingress
    xhr.withCredentials与 CORS 什么关系
    Redis Cluster集群
  • 原文地址:https://www.cnblogs.com/0banana0/p/9829118.html
Copyright © 2020-2023  润新知