0

我正在尽我所能研究有关诸如soap 之类的Web 服务的所有内容,并发现某些教程中显示的一些xml 难以理解,因此我决定从头开始学习以理解事物。xml 我已经理解了,所以我看到了 xpath、xslt、xpath、xquery、xlink、xpointer、xml 架构、xsl-fo。xml 世界中存在很多与 x 相关的东西。我查看了 xslt 并没有真正看到为什么它将用于小型或大型应用程序的任何理由。它所做的几乎所有事情都可以通过 css、javascript/jquery 或服务器端来完成。甚至在使用 xslt 吗?或者 DTD,Xpath,Xquery,Xlink,Xpointer,XSL-Fo,Xforms 怎么样?

我确实知道 xml 模式与肥皂一起使用,除非我错了。

4

3 回答 3

3

XSLT就其目的而言,它是一项伟大的技术,它专门将一个XML文档转换为另一个文档,或者有时转换为纯文本文件。如果您碰巧有数据并想用它来生成 HTML 或 XSL-FO 或其他东西,那么XSLT这是迄今为止最好的方法。如果您XML在应用程序之间传递文档并需要更改其格式,XSLT那么它是一个完美的工具。

但是,如果您的应用程序尚未使用XML,那么您可能没有使用它。作为开发人员,我建议学习XSLT,因为当您确实需要进行XML转换时,它是您的武器库中的一个很好的工具。在我的应用程序中,我们在一些有配置文件的地方使用它,这些配置文件会作为构建过程的一部分进行转换。不过除此之外,我已经好XSLT几年没用过了。

XSLT过去在服务器上非常常用来生成 HTML。传统后端的情况尤其如此,因为传统ASP后端ASP很糟糕,最好让您的业务层生成XML,然后可以将其转换XSLT为 HTML,而不是编写ASP代码来生成HTML

大多数现代服务器端环境现在都为编写动态提供了非常强大的工具,HTML尽管XSLT在这种情况下不太常用。

就比较而言XSLTCSS我真的无法比较。 XSLT是关于将一​​个XML文档转换为另一个文档,并CSSHTML(或有时XML)文档提供视觉样式信息。

XPathXML在处理文档和挑选单个信息时非常常用。它也在XSLT.

我从未在我工作过的任何公司中见过XQueryXPointer实际使用过。

XML Schema非常常用于指定XML文档的格式并验证它们。它在 SOAP Web 服务中被大量使用,因为 WSDLXSD用来指定SOAP部件的格式。

XSL-FO通常用于制作 PDF。如果您想制作 PDF,这是一种方法。它在技术上也可以用于其他事情,但这是我知道的唯一用例。

于 2011-04-01T01:13:00.257 回答
2

我查看了 xslt 并没有真正看到为什么它将用于小型或大型应用程序的任何理由。它所做的几乎所有事情都可以通过 css、javascript/jquery 或服务器端来完成。

嗯,首先,大多数使用 XSLT 的人确实在服务器端使用它。客户端 XSLT 从未真正起飞——出于某些原因,请参阅我在 XML 布拉格 2011(上周)上的论文——主要原因是它从未在每个浏览器上都可用。我希望通过新产品 Saxon-CE 来改变这种情况,但我不想把它变成广告。

其次,关于 XSLT 的重点不是它可以做其他技术不能做的事情,而是它可以更有效地完成它所做的事情。如果您需要将 XML 文档转换为其他 XML 文档或 HTML,一旦您掌握了学习曲线,XSLT 是迄今为止最有效的方法。的确,随着 jQuery 的出现,在 Javascript 中执行此操作已不再是曾经的噩梦,但是 XSLT 的声明式基于规则的方法有很多好处,尤其是当您必须处理始终存在于小程序中的变化和多样性时和大型项目。

于 2011-04-01T08:18:23.293 回答
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">&#163;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">&#163;<xsl:value-of select="price"/></div>
   </div>
</xsl:template>

使用 XSLT 处理器将“salesitem”模板应用到“salesitem”XML,结果将是您想要的 HTML。

我无法想象曾经使用response.write ".."echo ".."输出单个 HTML 标签。我喜欢“x”语言所提供的分离的纯粹性。

于 2011-04-02T00:26:51.037 回答