我的Google站点地图可以通过XSLT很好地呈现,没有xmlns=”http://www.sitemaps.org/schemas/sitemap/0.9“在<;但是,当包含urlset>元素时,我的foreach语句不起作用,模板中没有呈现任何内容。我的密码在下面。谢谢你的帮助
XML
<;urlset xmlns=”http://www.sitemaps.org/schemas/sitemap/0.9“>;
<;url>;
<;loc>;{site_url}</loc>;
<;lastmod>;{current_time format=“%Y-%m-%d”}</lastmod>;
<;changefreq>;每月</changefreq>;
<;优先权>;0.5</优先权>;
</url>;
</urlset>;
XSL
<;xsl:template match=“/”>;
<;html>;
<;车身>;
<;h2>;网站地图</h2>;
<;表border=“1”>;
<;tr bgcolor=“#9acd32”>;
<;th>;位置</th>;
<;th>;上次修改</th>;
<;th>;更新频率</th>;
<;th>;优先权</th>;
</tr>;
<;xsl:for each select=“urlset/url”>;
<;tr>;
<;td>&书信电报;xsl:select=“loc”/></td>;
<;td>&书信电报;xsl:select=“lastmod”/></td>;
<;td>&书信电报;xsl:select=“changefreq”/></td>;
<;td>&书信电报;xsl:select=“priority”/></td>;
</tr>;
</xsl:for each>;
</表>;
</车身>;
</html>;
我的谷歌网站地图呈现得很好
XSLT在没有
xmlns=”http://www.sitemaps.org/schemas/sitemap/0.9“
在中<;urlset>元素
当包含时,我的foreach声明
不起作用,没有任何渲染
模板
这是一个常见问题解答
XPath将任何不固定的名称视为属于“无命名空间”。但是,所提供文档中的元素属于”http://www.sitemaps.org/schemas/sitemap/0.9“名称空间--不适用于“无名称空间”
因此,以下XPath表达式根本不选择任何节点:
urlset/url
解决方案:
定义”http://www.sitemaps.org/schemas/sitemap/0.9“XSLT样式表中的命名空间,并将前缀与之关联。然后将此前缀用于参与任何XPath表达式的所有名称
<;xsl:stylesheet version=“1.0”
xmlns:xsl=”http://www.w3.org/1999/XSL/Transform"
xmlns:s=”http://www.sitemaps.org/schemas/sitemap/0.9"
排除结果前缀=“s”
&燃气轮机;
<;xsl:template match=“/”>;
<;html>;
<;车身>;
<;h2>;网站地图</h2>;
<;表border=“1”>;
<;tr bgcolor=“#9acd32”>;
<;th>;位置</th>;
<;th>;上次修改</th>;
<;th>;更新频率</th>;
<;th>;优先权</th>;
</tr>;
<;xsl:for each select=“s:urlset/s:url”>;
<;tr>;
<;td>&书信电报;xsl:select=“s:loc”/>;的值</td>;
<;td>&书信电报;xsl:select=“s:lastmod”/>;的值</td>;
<;td>&书信电报;xsl:select=“s:changefreq”/></td>;
<;td>&书信电报;xsl:select=“s:priority”/></td>;
</tr>;
</xsl:for each>;
</表>;
</车身>;
</html>;
</xsl:template>;
</xsl:stylesheet>;
当此转换应用于提供的XML文档时:
<;urlset xmlns=”http://www.sitemaps.org/schemas/sitemap/0.9“>;
<;url>;
<;loc>;{site_url}</loc>;
<;lastmod>;{current_time format=“%Y-%m-%d”}</lastmod>;
<;changefreq>;每月</changefreq>;
<;优先权>;0.5</优先权>;
</url>;
</urlset>;
它正确地产生以下结果:
<;html>;
<;车身>;
<;h2>;网站地图</h2>;
<;表border=“1”>;
<;tr bgcolor=“#9acd32”>;
<;th>;位置</th>;
<;th>;上次修改</th>;
<;th>;更新频率</th>;
<;th>;优先权</th>;
</tr>;
<;tr>;
<;td>;{site_url}</td>;
<;td>;{current_time format=“%Y-%m-%d”}</td>;
<;td>;每月</td>;
<;td>;0.5</td>;
</tr>;
</表>;
</车身>;
</html>;