css和xsl什么区别

css和xsl什么区别,第1张

通过上面的分析我们可以知道装饰XML的方法有两个:XSL和CSS。但是XSL和CSS到肢仔底有什么关系呢?当然我们可以注意到它们都可以用来定义XML显示格式的历野汪,但是它们存在很大的不同,XSL是应用于整个XML文档的,而CSS只是对HTML标签的显示模式进行了指定,它的任务是对

HTML 元素指定一组显示属性。

CSS 决定了页面的视觉外观,但是不会改变源文档的结构。XSL是用来处理文档的标记语言,也称为基于模板的语言,它允许将某种模式映射到源文档中,该源文档的输出是用XML、HTML或纯文本书写的。

使用 XSLT,可以将 XML 文档的结构转换为不同的 XML 文档。例如,您可以更改 XML 文档的顺序、添加或删除元素、执行条件测试或者用元素的集合进行迭代。而CSS是脊带一个属性集合,它用来标记一个元素的显示模式。同时需要说明的是,在XSL也可以使用CSS用来对由XML转化而成的HTML文档进行装饰。

它们是两种独立的技术。XSLT

和 CSS 不是兼容标准。一种在 XML 中创建 Web 页面的有用技术,是用 XSLT 将 XML 转换为诸如列表或表的结构,然后将 CSS

应用于结果,控制这些结构在适当媒体中的显示。您甚至可以从 XSLT 创建 CSS。

XSL提供两种机制来联合样式表:

1.样式表导入,允许样式表之间相互引用

2.样式表包含,允许样式表被原文组合.

样式表导入

一个XSL样式表可以包含xsl:import元素.所有xsl:import元素必须出现在样式表的开头. xsl:import元素有一个 href 属性,它的值就表示要导入的样式表的URI. 相对URI是指相对于xsl:import元素的基URI.

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<xsl:import href="article.xsl"/>

<xsl:import href="bigfont.xsl"/>

<xsl:define-attribute-set name="note-style">

<xsl:attribute-set font-posture="italic"/>

</xsl:define-attribute-set>

</xsl:stylesheet>

导向的样式表中的规则和定义比任何被导入样式表中的规则和定义都要重要.同样,一被导入的样式表中的规则和定义比之前导入的样式表中搜纤的规则和定义都要重要.一般来说,更重要的规则或定义比次重要的规则或定义要优先.每一类的规则和定义都会详衫如细规定它.

样式表包含

一个样式表中可以用xsl:include元素来包含另一个XSL样式表. xsl:include也有href 属性,它的值就表示被包含的样式表的URI. 相对URI是指相对于xsl:include元素的基URI. xsl:include元素可以作为xsl:stylesheet元素的子元素,出现在任何xsl:import之后.在XML树的层次在上该包含生效.由href属性值定位的资源内容作为一个XML文档解析,在该文档中的xsl:stylesheet元素的子元素替代包含文档的xsl:include元素.同时在被包含的文档的xsl:import元素在包含文档中移上至任一存在的xsl:import元素之后. 不象xsl:import,被包含的规则或定义不影响他们被处理的方式.

嵌入样式表

通常一个样式表就是一个完整的XML文档,xsl:stylesheet元素作为文档的元素. 然而一个XSL样式表也可以嵌入在其它文档内容之中.内嵌的方式可能有两种:XSL样式表可以原文嵌入在一个非XML文档中或者xsl:stylesheet不作为文档元素出现在一个XML文档中.在第二种情况增加了出现内嵌样式,即自己规定样式的文档的可能. XSL还没有为之定义相应的机制.这是由于可以采用把样式表结合文档的通用方式来实现,只要满足:

1. 该方式允许一部分内容可以规定为样式表,例如使用有片段标识符URI

2. 该方式本身能被嵌入在文档中, 比如作为一个处理指令.定义这样的方式不在XSL的范围之内.

下例表明了怎样用世塌仿xml:stylesheet处理指令将样式表和文档结合来实现内嵌样式. 其中的URI在片段标识符中使用了一个Xpointer来确定xsl:stylesheet元素的位置.

<?xml version="1.0"?>

<?xml:stylesheet type="text/xsl" href="#id(style1)"?>

<!DOCTYPE doc SYSTEM "doc.dtd">

<doc>

<head>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" id="style1">

<xsl:import href="doc.xsl"/>

<xsl:template match="id(foo)">

<fo:block font-weight="bold"><xsl:process-children/></fo:block>

</xsl:template>

</xsl:stylesheet>

</head>

<body>

<para id="foo">

...

</para>

</body>

</doc>

XSL 之于 XML ,就像 CSS 之于 HTML。它是指可扩展样式表语言 (EXtensible Stylesheet Language)。这是一种用于以可读格式呈现 XML 数据的语言。XSL 实际上包含两个部分: * XSLT – 用于转换 XML 文档的语言 * XPath – 用于在 XML 文档中导航的语言 XSLT 是指 XSL 转换 (XSL Transformation),它是 XSL 最重要的部分。 XSLT 可以将 XML 文档转换为其它 XML 文档、XHTML 输出或简单的文本。这通常是通过将每个 XML 元素转换为 HTML 元素来完成的。由于 XML 标签是用户定义的,浏览器不知道如何解释或呈现每个标签,因此必须使用 XSL。XML 标签的意义是为了方便用户(而不是计算机)理解。 XSLT 还可以对 XML 树进行下列 *** 作: * 添加和删除元素 * 添加和删除属性 * 对元素进行重新排列或排序 * 隐藏或显示某些元素 * 查找或选择特定元素 在什么情况下应该使用 XSL? XSL 在设计时有几个目标用途,这些用途使它成为某些开发情况下的完美解决方案,而对另一些开发情况则毫无用处。 XSL 专门用于处理 XML 文档,并且遵循 XML 语法。因此,它只能在支持 XML 的应用程序中与 XML 结合使态隐用。最合适帆并厅使用 XML 和 XSL 的情况是:Web 门户、蔽悔新闻聚合器、社区中国站或其它任何需要向各种设备及大量客户端提供信息的 Web 应用程序。 XSLT 是一种基于模式匹配的语言。它会查找匹配特定条件的节点,然后应用相应的规则。因此,它不具备大多数编程语言的计算能力。例如,XSL 无法在运行时更改变量的值。它不应该用于从使用复杂公式的动态数据源(例如在线商店)来计算值。Web 编程语言更适于此用途。 XSL 不能代替或补充 CSS。它不应(也不能)用于设置 HTML 的样式。但是,您可以将其用于需要频繁重新设计可视化效果、频繁更换布局以及以灵活格式处理数据的中国站。 XSL 不是内容管理工具。它不应(也不能)用于更改 XML 文档的内容或者编辑信息。但是,您可以将 XML 和 XSL 用于需要处理几种不同格式文档的内容管理系统


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11980787.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存