我正在研究关于web服务的所有内容,例如soap,并发现一些教程中显示的一些xml难以理解,所以我决定从头开始学习以理解事物。 我已经理解了xml然后我看到了xpath,xslt,xpath,xquery,xlink,xpointer,xml schema,xsl-fo。 xml世界中存在很多与x相关的东西。我调查了xslt,并没有真正看到为什么它将用于小型或大型应用程序的任何理由。几乎所做的事情都可以用css,javascript / jquery或服务器端完成。是xslt甚至被使用? 或者DTD,Xpath,Xquery,Xlink,Xpointer,XSL-Fo,Xforms怎么样?
我知道xml架构与soap一起使用,除非我错了。
答案 0 :(得分:2)
XSLT
是一项出色的技术,它专门将一个XML
文档转换为另一个文档,有时转换为纯文本文件。如果您碰巧拥有数据并希望使用它来生成HTML或XSL-FO或其他内容,那么XSLT
是目前最好的方法。如果您在应用程序之间传递XML
文档并需要更改其格式,XSLT
是完美的工具。
但是,如果您的应用程序尚未使用XML
,那么您可能没有使用它。作为开发人员,我建议您学习XSLT
,因为当您需要进行XML
转换时,这是一个很好的工具,可用于您的工具库。在我的应用程序中,我们在一些地方使用它,在这些地方我们有配置文件,这些配置文件在构建过程中被转换。除此之外,我多年没有使用XSLT
。
XSLT
曾经在服务器上非常常用来生成HTML。对于传统的ASP
后端来说尤其如此,因为传统的ASP
非常糟糕,让业务层生成XML
然后可以通过{{1}进行转换要好得多转换为HTML而不是编写XSLT
代码来生成ASP
。
大多数现代服务器端环境都提供了非常强大的工具来编写动态HTML
,尽管如此HTML
在这种情况下不太常用。
就XSLT
与XSLT
进行比较,我看不到任何比较。 CSS
是将一个XSLT
文档转换为另一个XML
,CSS
提供HTML
(或有时XML
)文档的可视样式信息。
XPath
文档并挑选出各条信息时, XML
非常常用。它也在XSLT
内大量使用。
我从未在我工作的任何公司中看到XQuery
或XPointer
。
XML Schema
非常常用于指定XML
文档的格式并验证它们。它在SOAP Web服务中大量使用,因为WSDL使用XSD
来指定SOAP
部分的格式。
XSL-FO
通常用于生成PDF。如果要生成PDF,这是一种方法。它在技术上也可以用于其他事情,但这是我所知道的唯一用例。
答案 1 :(得分:2)
我研究了xslt,并没有真正看到为什么它会在小型或大型应用程序中使用的原因。几乎所做的事情都可以用css,javascript / jquery或服务器端来完成。
嗯,首先,大多数使用XSLT的人确实在服务器端使用它。客户端XSLT从未真正起飞 - 出于某些原因,请参阅我在2011年布拉格布拉格(上周)的论文 - 主要原因是它从未在每个浏览器上都可用。我希望用新产品Saxon-CE改变这种情况,但我不想把它变成广告。
其次,关于XSLT的观点并不是说它可以做其他技术无法做到的事情,而是它做得更有效。如果您需要将XML文档转换为其他XML文档或HTML,那么一旦您掌握了学习曲线,XSLT就是最有效的方法。确实,随着jQuery的出现,在Javascript中实现这一点并不是曾经的噩梦,但XSLT的基于声明规则的方法有很多好处,特别是当你必须处理变化和变化时,这两种方法总是存在和大型项目。
答案 2 :(得分:0)
我使用XML,XSLT和XQuery作为构建网站的首选工具。
XSLT执行CSS声称能够做的事情 - 将内容与布局分开。
假设您要输出销售项目的HTML;
<div class="salesitem">
<div class="title">Saucepan</div>
<a href="images/sp456.jpg">
<img alt="Saucepan" src="images/sp456.jpg"/>
</a>
<div class="price">£19.99</div>
</div>
要使用“x”语言输出上述内容,请先定义要显示的数据。不要担心布局,外观或HTML;
<salesitem>
<title>Saucepan</title>
<image>sp456.jpg</image>
<price>19.99</price>
</salesitem>
然后设计一个XSLT模板,将上面的内容转换为HTML;
<xsl:template match="salesitem">
<div class="salesitem">
<div class="title"><xsl:value-of select="title"/></div>
<a href="images/{image}">
<img alt="{title}" src="images/{image}"/>
</a>
<div class="price">£<xsl:value-of select="price"/></div>
</div>
</xsl:template>
使用XSLT处理器将“salesitem”模板应用于“salesitem”XML,结果将是您想要的HTML。
我无法想象使用response.write ".."
或echo ".."
输出单个HTML标记。我喜欢“x”语言给予的分离的纯洁。