c# - XDocument 谷歌移动站点地图标签

标签 c# xml xml-sitemap

我一直在四处寻找,但我似乎找不到关于这个问题的任何信息。

如果你去https://support.google.com/webmasters/answer/34648 它说必须将移动标签添加到您的 xml 中才能正确抓取它。 我的问题在于我不知道如何在使用 XDocument 时实际制作此标签。

有谁知道怎么写这个标签

<mobile:mobile/>

使用 XElement 标签?

我有以下生成文档的代码

XNamespace sitemap = XNamespace.Get("http://www.sitemaps.org/schemas/sitemap/0.9");
XNamespace mobile = XNamespace.Get("http://www.google.com/schemas/sitemap-mobile/1.0");

XDocument doc = new XDocument(
    new XDeclaration("1.0", "utf-8", null),
    new XElement(sitemap + "urlset",
      new XAttribute(XNamespace.Xmlns + "mobile", mobile))
);

以及以下构建元素的代码

private XElement BuildSitemapItem(XNamespace ns)
{
    XElement urlNode = new XElement(ns + "url",
        new XElement(ns +"loc"),
        new XElement(ns + "lastmod")
    );

    return urlNode;
}

我已经在这个问题上停留了一段时间,所以我们将不胜感激。

最佳答案

您只需在 XElement 上指定正确的命名空间(在本例中为移动设备)

XNamespace mobileNs = "http://www.google.com/schemas/sitemap-mobile/1.0";
new XElement(mobileNs + "mobile")

这将输出 <mobile:mobile/>

关于c# - XDocument 谷歌移动站点地图标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20636250/

相关文章:

c# - C#中通过XmlSerializer类反序列化多个同名XML元素

php - 当网站上的任何内容发生变化时通知谷歌站点地图变化

c# - 添加 const 关键字会中断 Path.Combine 调用

c# - 如何在 ASP.NET 中使用登录系统上传特定文件夹?

c# Linq 或代码从单个源数据列表中提取组

c# - 使用 Controller 名称和操作名称 main.js 时,asp.net core 的 Angular 2 设置问题

xml - ActionScripts3 从服务器读取 XML 问题

xml - 需要更换命名空间

mvcsitemapprovider - 如何使用 mvcsitemapprovider 将自定义 xml 标签添加到 sitemap.xml?

seo - 在 robots.txt 中只允许抓取共享主机上的子域而不是子目录?