Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在网站上使用XML和XSLT是个好主意吗?_Xml_Xslt - Fatal编程技术网

在网站上使用XML和XSLT是个好主意吗?

在网站上使用XML和XSLT是个好主意吗?,xml,xslt,Xml,Xslt,我想知道,当使用XML文档作为网页内容,使用XSLT管理显示部分而不使用普通HTML时,这会带来好处还是缺点 我眼中的第一个条件是浏览器对XML和XSLT的支持。但据我所知,没有一款现代浏览器有这个问题。(如果我错了,请纠正我。) 但是在搜索引擎的排名中,例如有好处(语义网等等)还是有损失(HTML标签更常见) 或者,您是否看到了应该或不应该在web页面上使用XML和XSLT组合的其他原因 相关的: XHTML是HTML的XML版本。我可能会避免在网站上使用XSLT。我将使用XHTML和CS

我想知道,当使用XML文档作为网页内容,使用XSLT管理显示部分而不使用普通HTML时,这会带来好处还是缺点

我眼中的第一个条件是浏览器对XML和XSLT的支持。但据我所知,没有一款现代浏览器有这个问题。(如果我错了,请纠正我。)

但是在搜索引擎的排名中,例如有好处(语义网等等)还是有损失(HTML标签更常见)

或者,您是否看到了应该或不应该在web页面上使用XML和XSLT组合的其他原因

相关的:


XHTML是HTML的XML版本。我可能会避免在网站上使用XSLT。我将使用XHTML和CSS来控制表示。我之所以这样说,是因为(X)HTML/CSS几乎是web应用程序事实上的标准,而且还有更多的工具可用于开发和调试


如果您想利用XHTML中一些不理想的HTML内容,那么对XHTML有不同级别的验证。

这是一种很好的方法,但不幸的是,许多服务器端技术都不支持这一想法

例如,在ASP.NET中,您不能将服务器控件与此方法一起使用,而这种方法通常足以让人关闭


XSLT非常适用于没有像报告这样的交互的页面。

我个人不会经常使用clientsideXSLT;浏览器支持存在问题,而且您可能需要删除xml中的数据(即客户端不需要知道或不应该知道)


但是服务器端。。。几年前,我经常使用这种方法作为VB6的MVC实现,也就是说,VB6代码(控制器)将数据收集为xml(模型),并使用xslt塑造html(视图)。它在分离关注点方面运作良好。现在我会使用ASP.NET MVC来做同样的事情,但是使用ascx/aspx视图模板。

您应该在服务器端进行转换,而不是依赖浏览器支持


我们使用它来支持我们网站上的多种语言。缺点是,有时我们的设计人员在使用XSL/XSLT/XPATH设计页面时会有一个陡峭的学习曲线。

如果将其与服务器端代码的功能进行比较,XSLT在几个参数上都有不足之处

如果您的页面是完全动态的,那么仍然值得在服务器端代码中创建它。如果您的数据源是XML,您仍然可以使用服务器端XML解析和转换来创建转换后的XHTML并将其提供给客户端


很少需要完全依赖浏览器的功能在客户端上专门转换HTML。大多数现代浏览器都有很好的XML/XSLT支持,但它们的主要区别在于所使用的XSLT处理器的类型。

我有时会使用XML,因为当一个网站没有MySQL数据库或只是为了记录一小部分项目(需要经常更改),然后使用PHP在我的网页中用HTML/CSS解析它

但是,这确实需要手动编辑每个xml条目,所以只需将其用于小型应用程序即可。

(因为我还不能对此发表评论,这是对“Saint-Gerbil”的回复)

实际上,您可以在XSL中使用ASP.NET控件,这非常简单,将名称空间ASP添加到XSL中,将其转换为stringwriter,然后在转换后的字符串中解析控件:

// Transform
xsltrans.Transform(xmldoc, xslArg, oSW);

// Get transformed content
string sPage = oSW.ToString();

// Add to page
Page.Controls.Clear();
Page.Controls.Add(Page.ParseControl(sPage));

这将解析转换内容中的任何ASP.NET控件。

我不得不在主页上使用客户端XSL(T),以防止freehoster自动插入广告;-)(IE和Firefox对此有问题!)


我会在服务器端使用XML,但除了普通的XHTML+CSS,我不会传输任何东西。对于互联网来说,一切都建立在一种技术上,而不是数千种个人语言和语义上,这一点至关重要。

我从未听说过有人这样做,但我使用XSLT作为基于XML的html模板语言的宏语言。我没有将它用于从一个文档到另一个文档的大规模转换,而是用于基本上自定义的标记。模板在编译之前通过xslt运行,因此它不需要实际操作数据。不过,它提供的是一种尽可能简洁地使用一段xml的方法,然后以一种在模板语言本身中不可能或至少更难实现的方式对输出代码执行非常简单的转换


对于html,通常需要嵌套div,并添加类等,以便在不添加任何实际意义的情况下使其看起来正确。不必到处重复这种模式,只需创建一个自定义元素,然后编写一个简单的XSLT转换,将该元素及其属性转换为完全扩展的html即可。然而,我决不会梦想使用XSLT作为模板化数据的唯一手段。这是一个基于xsl的网站示例


说够了

这是一个非常重要的话题。10年前,人们开始问这样的问题……我们可以将数据包发送到浏览器并让浏览器呈现内容吗?设计目标如此重要的原因是为了解决我们今天面临的问题……多种类型的设备和平板电脑不完全支持桌面浏览模式。XHTML已经让我们走了这么远……现在,人们正试图创建ECMAScript来实现这一点。但从长远来看,这是一个非常糟糕的模式。它打破了在web上重新调整标记和内容用途的目标

答案是肯定的……您可以构建XSL/XSLT/XML类型系统。您可以发送一个XML数据包,并带有指向其XSLT样式表的链接,让大多数(如果不是所有的话)现代浏览器在客户机上将文件解析为标记。我做到了,它的效果令人难以置信