利用ASP.NET和XSLT实现Silverlight搜索引擎优化(SEO)
2008-12-24 10:02
435 查看
Silverlight对于搜索引擎来说是不可被搜索的,因为所有的文本信息都被包含在Silverlight控件内以XAML的方式Render的,而不是以XHTML方式。Synergist提出了用ASP.NET + XSLT来将Silverlight的内容同时转换成对应的XHTML在同一页面上以隐藏的DIV等标签来输出,这样所有的内容就可以被搜索引擎搜索。
通过使用<asp:XML>控件并指定相应的XSLT样式表,我们可以到到这样的效果:
在转换的XSLT中,实现了下边的转换规则:
· <Canvas>元素转换成<div>标记
· <TextElement>元素转换成容纳文本的<div>标记
· <Run>元素转换成<span>标记
· <Image>元素转换成<img>标记
· <MediaElement>元素转换成<a>超链接标记
当然,你还可以定义自己的映射规则,毕竟这些是不需要显示出来的,仅仅是隐藏在生成的XHTML中而已。当然你也不用关心样式了。来看看这个简单的XSLT实现了什么:
Synergist还未我们做了例子,不妨试一下吧。很好的tip:)
(原文地址:http://blogs.msdn.com/synergist/archive/2007/10/03/simple-silverlight-seo-with-asp-net-and-xslt.aspx)
通过使用<asp:XML>控件并指定相应的XSLT样式表,我们可以到到这样的效果:
<div id="SLHost" style=”Display:none”> <asp:Xml ID="XHTML" runat="server" DocumentSource="seo.xaml" TransformSource="XAML2XHTML.xslt" EnableViewState="False"/> <script type="text/javascript"> createSilverlight(); </script> </div>[/b] |
· <Canvas>元素转换成<div>标记
· <TextElement>元素转换成容纳文本的<div>标记
· <Run>元素转换成<span>标记
· <Image>元素转换成<img>标记
· <MediaElement>元素转换成<a>超链接标记
当然,你还可以定义自己的映射规则,毕竟这些是不需要显示出来的,仅仅是隐藏在生成的XHTML中而已。当然你也不用关心样式了。来看看这个简单的XSLT实现了什么:
<?xml version="1.0" encoding="utf-8" ?> <xsl:stylesheet version="1.0" xmlns:sl="http://schemas.microsoft.com/client/2007" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="sl"> <xsl:output omit-xml-declaration="yes" indent="yes" /> <xsl:template match="/"> <xsl:comment>This is the text that is in the Silverlight XAML:</xsl:comment> <xsl:apply-templates select="*" /> </xsl:template> <xsl:template match="sl:Canvas"> <div> <xsl:apply-templates select="*" /> </div> </xsl:template> <xsl:template match="node()" /> <xsl:template match="sl:Image"> <div> <img src="{@Source}" /> </div> </xsl:template> <xsl:template match="sl:MediaElement"> <div class="Media"> <a href="{@Source}">Media</a> </div> </xsl:template> <xsl:template match="sl:TextBlock"> <div> <xsl:value-of select="@Text" /> <xsl:value-of select="text()" /> <xsl:apply-templates select="*" /> </div> </xsl:template> <xsl:template match="sl:LineBreak"> <br /> </xsl:template> <xsl:template match="sl:Run"> <span> <xsl:value-of select="@Text" /> <xsl:value-of select="text()" /> </span> </xsl:template> </xsl:stylesheet>[/b] |
(原文地址:http://blogs.msdn.com/synergist/archive/2007/10/03/simple-silverlight-seo-with-asp-net-and-xslt.aspx)
相关文章推荐
- 在ASP.Net中两种利用CSS实现多界面的方法. (转)
- 利用uploadify+asp.net 实现大文件批量上传。
- asp.net利用RAR实现文件压缩解压缩(转)
- 利用CSS预处理技术实现项目换肤功能-(less css+asp.net mvc bundle)
- asp.net利用对象数组实现xml序列化的代码实例
- asp.net利用RAR实现文件压缩解压缩(转)
- ASP.NET中利用存储过程实现模糊查询
- 利用JS在asp.net中实现左导航页的隐藏
- ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页
- 2014-07-23 利用ASP.NET自带控件实现单文件上传与下载
- Asp.Net 301重定向的实现(SEO友好,有利于PR值)
- Asp.net MVC利用knockoutjs实现登陆并记录用户的内外网IP及所在城市(推荐)
- ASP.NET中利用DataList实现图片无缝滚动 实例分享
- asp.net利用.net控件实现下拉导航菜单的制作
- ASP.NET中利用存储过程实现模糊查询
- [转]asp.net中利用ashx实现图片防盗链
- 教学影片:如何利用Blend2设计Silverlight并配合ASP.NET
- ASP.NET利用JavaScript实现无刷新闪烁二级联动菜单
- ASP.Net中利用CSS实现多界面两法
- 利用XMLHTTP实现ASP.NET无刷新提交