У меня есть карта сайта в формате XML для многоязычного сайта, соответствующая спецификациям Google для многоязычных карт сайта используя теги xhtml:link
.
Синтаксис выглядит так:
<url>
<loc>http://www.example.com/url-segment/</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://www.example.com/url-segment/" />
<xhtml:link rel="alternate" hreflang="de" href="http://www.example.com/de/url-segment/" />
<xhtml:link rel="alternate" hreflang="fr" href="http://www.example.com/fr/url-segment/" />
<lastmod>2016-08-09T00:41:57+12:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
Я пытаюсь сделать это читабельным для клиента, используя шаблон XSLT следующим образом:
<xsl:for-each select="sitemap:urlset/sitemap:url">
<tr>
<td>
<xsl:variable name="itemURL">
<xsl:value-of select="sitemap:loc"/>
</xsl:variable>
</td>
<td>
<xsl:value-of select="concat(sitemap:priority*100,'%')"/>
</td>
<td>
<xsl:value-of select="concat(translate(substring(sitemap:changefreq, 1, 1),concat($lower, $upper),concat($upper, $lower)),substring(sitemap:changefreq, 2))"/>
</td>
<td>
<xsl:value-of select="concat(substring(sitemap:lastmod,0,11),concat(' ', substring(sitemap:lastmod,12,5)))"/>
</td>
</tr>
</xsl:for-each>
Что работает без тегов xhtml:link
. Но я не уверен, как правильно ссылаться на теги xhtml:link
. Я пробовал что-то вроде этого:
<xsl:for-each select="xhtml:link">
<tr>
<td>
<xsl:value-of select="xhtml:link@href"/>
</td>
<td>
<xsl:value-of select="xhtml:link@hreflang"/>
</td>
<td colspan="2"></td>
</tr>
</xsl:for-each>
Но это не работает.
Каков правильный синтаксис XSLT для перебора / выбора тегов xhtml:link
в многоязычных картах сайта Google?