2013-12-17 2 views
2

Я искал, но я не могу найти никакой информации по этой проблеме.XDocument google mobile sitemap tag

Если вы переходите к https://support.google.com/webmasters/answer/34648 , то говорится, что необходимо добавить в ваш XML-тег мобильный тег, чтобы он сканировался должным образом. Моя проблема заключается в том, что я понятия не имею, как на самом деле сделать этот тег при использовании XDocument.

Кто-нибудь знает, как acutally написать этот тег

<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; 
} 

Я застрял в этом вопросе на некоторое время, так что любая помощь будет оценили.

+0

Вы пробовали просто добавить 'новый XElement (нс +«мобильный») 'внутри вашего конструктора' urlNode'? Хотя это не визуально не отличается от '', это будет означать одно и то же. Префикс «mobile:» - это просто короткая ссылка на пространство имен. –

+0

Если вы добавите это, он добавит его в xmlns = "" Я не знаю, будет ли он по-прежнему тем же, тогда я бы предпочел, чтобы он выглядел точно так же, если кто-то не может проверить, что google все равно, как выглядит тег как. Но спасибо. –

+0

Да, он добавит 'xmlns', но это не имеет значения; он все равно должен работать одинаково. –

ответ

1

Вам просто нужно указать правильное пространство имен на вашем XElement (в этом случае мобильный телефон)

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

Это будет выводить <mobile:mobile/>

Смежные вопросы