xml ,xsl,css 三种关系区别

2024-03-25 10:48

本文主要是介绍xml ,xsl,css 三种关系区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近要毕业设计了,我就把我搜藏的文章,让大家看看,以后有空再写点技术文章

xml ,xsl,css 三种关系区别

做了一小段xml.与大家交流。

XML在更多的时候只是一种数据文件,利用XML我们可以使内容与样式分离
如果我们将XML文件比作结构化的原料的话。那么XSL就好像"筛子"与"模子",
筛子选取自己需要的原料,这些原料再通过模子形成最终的产品。
这个模子大致是这样:我们先设计好表现的页面,再将其中需要从XML中获取数据来填充内容的部分去掉,
然后用XSL语句从XML中筛出相关的数据来填充。

XML在展开时是一个树形结构,将树形结构中自定义标记称为节点,节点之间存在父子、兄弟关系,要访问其中的结点从根结点就要以"/"来层层进入。

 


三个文件。(blue.xml blue.xsl blue.css )拷到本地同一目录下。

怎样从XML里提取相关的数据,就要用到XSL提供的模式化查询语言。就是通过相关的模式匹配规则表达式从XML里提取数据的特定语句,即上面所说的"筛子"。

 

blue.xml:

blue.xsl:

blue.css:

选择模式:
<xsl:for-each>、<xsl:value-of>和 <xsl:apply-templates>

匹配模式:
<xsl:template>

<xsl:template match="Replys" >
 <xsl:for-each select="Reply"  >
  <div>
   <div id="replyPerson">回复人:<xsl:value-of select="UserName"/> | <xsl:value-of select="RankName"/>|</div>
   <div><xsl:apply-templates select="Content" /></div>
   <div>发表时间:<xsl:value-of select="DateTime"/></div>
  </div>
 </xsl:for-each>
</xsl:template>

简单说下这段:

XSL模板将XSL的设计细化成一个个模板(块),最后再将这些模板(块)组合成一个完整的XSL;好比船与集装箱,我们不是将所有的货物一件件地堆起来,而是装在各自的集装箱中,然后再在船上将这些集装箱堆放起来。这种方法可以使你先从整体上考虑整个XSL的设计,然后将一些表现形式细化成不同的模块,再具体设计这些模块,最后将它们整合在一起,这样,将宏观与微观结合起来,符合人们条理化、规范化要求。

装集装箱--书写模板(块):<xsl:template>
<xsl:template match="Replys">
  match ── 确定什么样的情况下执行此模板。就是标记的名字;
其中最上层模板必须将match设为"/"。
  <xsl:template>用match属性从XML选取满足条件的节点,在真对这些特定的节点形成
一个特定输出形式的模板。

<xsl:for-each select="Reply">循环选择。
  select :确定在此上下文环境中应执行什么模板,即选取用< xsl:template >标记建立的模板(块)。
<xsl:value-of> 直接输出选择的。
调用模板(块):<xsl:apply-templates select="Content" />
调用xsl最后一段。
<xsl:template match="Content">
<xsl:apply-templates />
</xsl:template>

读后感:XSL可以把相同的数据(xml)以不同的数据形式和样式(css)提交给终端客户

这篇关于xml ,xsl,css 三种关系区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/844754

相关文章

基于SpringBoot实现分布式锁的三种方法

《基于SpringBoot实现分布式锁的三种方法》这篇文章主要为大家详细介绍了基于SpringBoot实现分布式锁的三种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、基于Redis原生命令实现分布式锁1. 基础版Redis分布式锁2. 可重入锁实现二、使用Redisso

C#实现将XML数据自动化地写入Excel文件

《C#实现将XML数据自动化地写入Excel文件》在现代企业级应用中,数据处理与报表生成是核心环节,本文将深入探讨如何利用C#和一款优秀的库,将XML数据自动化地写入Excel文件,有需要的小伙伴可以... 目录理解XML数据结构与Excel的对应关系引入高效工具:使用Spire.XLS for .NETC

MySQL 筛选条件放 ON后 vs 放 WHERE 后的区别解析

《MySQL筛选条件放ON后vs放WHERE后的区别解析》文章解释了在MySQL中,将筛选条件放在ON和WHERE中的区别,文章通过几个场景说明了ON和WHERE的区别,并总结了ON用于关... 今天我们来讲讲数据库筛选条件放 ON 后和放 WHERE 后的区别。ON 决定如何 "连接" 表,WHERE

Mybatis的mapper文件中#和$的区别示例解析

《Mybatis的mapper文件中#和$的区别示例解析》MyBatis的mapper文件中,#{}和${}是两种参数占位符,核心差异在于参数解析方式、SQL注入风险、适用场景,以下从底层原理、使用场... 目录MyBATis 中 mapper 文件里 #{} 与 ${} 的核心区别一、核心区别对比表二、底

HTML5的input标签的`type`属性值详解和代码示例

《HTML5的input标签的`type`属性值详解和代码示例》HTML5的`input`标签提供了多种`type`属性值,用于创建不同类型的输入控件,满足用户输入的多样化需求,从文本输入、密码输入、... 目录一、引言二、文本类输入类型2.1 text2.2 password2.3 textarea(严格

Spring Boot Interceptor的原理、配置、顺序控制及与Filter的关键区别对比分析

《SpringBootInterceptor的原理、配置、顺序控制及与Filter的关键区别对比分析》本文主要介绍了SpringBoot中的拦截器(Interceptor)及其与过滤器(Filt... 目录前言一、核心功能二、拦截器的实现2.1 定义自定义拦截器2.2 注册拦截器三、多拦截器的执行顺序四、过

springboot中配置logback-spring.xml的方法

《springboot中配置logback-spring.xml的方法》文章介绍了如何在SpringBoot项目中配置logback-spring.xml文件来进行日志管理,包括如何定义日志输出方式、... 目录一、在src/main/resources目录下,也就是在classpath路径下创建logba

SpringBoot返回文件让前端下载的几种方式

《SpringBoot返回文件让前端下载的几种方式》文章介绍了开发中文件下载的两种常见解决方案,并详细描述了通过后端进行下载的原理和步骤,包括一次性读取到内存和分块写入响应输出流两种方法,此外,还提供... 目录01 背景02 一次性读取到内存,通过响应输出流输出到前端02 将文件流通过循环写入到响应输出流

C# Semaphore与SemaphoreSlim区别小结

《C#Semaphore与SemaphoreSlim区别小结》本文主要介绍了C#Semaphore与SemaphoreSlim区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录一、核心区别概览二、详细对比说明1.跨进程支持2.异步支持(关键区别!)3.性能差异4.API 差

Java中自旋锁与CAS机制的深层关系与区别

《Java中自旋锁与CAS机制的深层关系与区别》CAS算法即比较并替换,是一种实现并发编程时常用到的算法,Java并发包中的很多类都使用了CAS算法,:本文主要介绍Java中自旋锁与CAS机制深层... 目录1. 引言2. 比较并交换 (Compare-and-Swap, CAS) 核心原理2.1 CAS