使用XSL解析XML输出HTML(XSL学习笔记一)
最近项目用到 XSL + XML,XML大家应该很熟悉,XSL暂且不解释,先看效果,如果想学习XSL的内容,可以先访问:
https://www.w3school.com.cn/xsl/xsl_languages.asp
创建XML文件
第一步,创建一个xml文件mycd.xml,里面存放数据模型
<?xml version="1.0" encoding="ISO-8859-1"?>
<mycds>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
<cd>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
<company>CBS Records</company>
<price>9.90</price>
<year>1988</year>
</cd>
<cd>
<title>Greatest Hits</title>
<artist>Dolly Parton</artist>
<country>USA</country>
<company>RCA</company>
<price>9.90</price>
<year>1982</year>
</cd>
</mycds>
创建XSL文件
第二步,创建一个xsl样式表文件mycds.xsl,解析要遍历的xml数据模型,以及要输出的文档样式
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th align="left">Title</th>
<th align="left">Artist</th>
</tr>
<xsl:for-each select="cds/cd">
<tr>
<td>
<xsl:value-of select="title"/>
</td>
<td>
<xsl:value-of select="artist"/>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
关联XML和XSL文件
第三步,在xml文件中引入xsl样式表。
<?xml-stylesheet type="text/xsl" href="mycds.xsl"?>
使用浏览器就可以正常解析了。效果预览:http://chsoul.gitee.io/test/xsl/mycds.xml
简单理解:
相比于我们熟悉的HTML + CSS ,可以类比为XML + XSL,区别在于HTML自身为纯静态资源,逻辑判断的需要JavaScript的支持,而XSL自身就拥有逻辑处理功能,而XSL也不仅仅局限于HTML格式的输出。
但是XSL发展至今还是被淘汰的技术,个人理解 XSL + XML体量太大,而且解析过程影响性能,耗费资源,不如json的轻量化。
使用XSL解析XML输出HTML(XSL学习笔记一)的更多相关文章
- ACEXML解析XML文件——我是如何学习并在短时间内掌握一个库的使用方法的
最近做的C++项目中需要使用xml文件保存一些信息,程序启动时会读取这些信息.最终经过主程的评测,决定使用ACEXML库来读取解析XML文件. 好吧,至于为什么选择ACEXML库,我就不说了.既然选择 ...
- Linux Shell输出颜色字符学习笔记(附Python脚本实现自动化定制生成)
齿轮发出咔嚓一声,向前进了一格.而一旦向前迈进,齿轮就不能倒退了.这就是世界的规则. 0x01背景 造了个轮子:御剑师傅的ipintervalmerge的Python版本.觉得打印的提示信息如果是普通 ...
- 使用JSP实现输出(web基础学习笔记二)
Jsp:Java Server Page 服务器端的Java页面,动态网页技术 jsp注释 显式注释:这种注释客户端是允许看见的;<!--html注释--> 隐式注释:这种注释客户端是看不 ...
- xml文档格式学习笔记
xml入门经典 (pdf书籍) https://www.cnblogs.com/zhaopengcheng/p/6848802.html
- 《C++ Primer Plus》第17章 输入、输出和文件 学习笔记
流是进出程序的字节流.缓冲区是内存中的临时存储区域,是程序与文件或其他I/O设备之间的桥梁.信息在缓冲区和文件之间传输时,将使用设备(如磁盘驱动器)处理效率最高的尺寸以大块数据的方式进行传输.信息在缓 ...
- 20179223《Linux内核原理与解析》第六周学习笔记
视频知识学习 给MenuOS增加time和time-asm命令 1.更新menu代码到最新版 2.再main()函数中增加MenuConfig 3.增加对应的Time函数和TimeAsm函数(这里的函 ...
- 关于读取XML文件代码【学习笔记】
public class XmlManager { private XmlDocument m_XMLDoc = null; public XmlManager(XmlDocument xmldoc) ...
- ACEXML解析XML文件——简单示例程序
掌握了ACMXML库解析XML文件的方法后,下面来实现一个比较完整的程序. 定义基本结构 xml文件格式如下 <?xml version="1.0"?> <roo ...
- Sharepoint学习笔记—习题系列--70-576习题解析 --索引目录
Sharepoint学习笔记—习题系列--70-576习题解析 为便于查阅,这里整理并列出了70-576习题解析系列的所有问题,有些内容可能会在以后更新. 需要事先申明的是: 1. ...
随机推荐
- Linux命令行扩展和被括起来的集合
命令行扩展:`` 和 $() 单引号'' 双引号"" 反向单引号`` 在很多场景下效果不同 [root@centos8 ~]#echo "echo $HOSTNAME&q ...
- 边界层吞吸技术(BLI)
气流在机体表面前进时,由于受到摩擦,其速度会不断降低,从而会产生湍流甚至气流分离,而流动分离又会造成大量紊流.涡,使升力大量损失,同时也会造成阻力急剧增加.边界层吞吸技术就是一种对附面层气流" ...
- linux 安装配置zerotier
1.在线安装zerotier curl -s https://install.zerotier.com/ | sudo bash 2.添加开机自启 $ sudo systemctl enable ze ...
- 通过代码实现 `OutOfMemory
通过代码实现 OutOfMemory Intro 来尝试写一个发生 OutOfMemoryException 的代码吧,开启煞笔代码第三篇 -- OutofMemory OutOfMemory Out ...
- 安卓WebSocket使用
引入jar包: implementation "org.java-websocket:Java-WebSocket:1.4.0"implementation "org.s ...
- java的“同一”与“相等”
变量:引用(指向地址) + 值(该变量指向值所储存的那一片内存) 两个变量同一 : 判断 是否 这两个变量指向同一片内存. 两个变量相等 : 判断 是否 这两个变量的类型相同,且值相等. 注:常用的& ...
- 如何使用Internet Explorer下载安装最新版Edge浏览器
这个题目看起来可能有点奇怪,不过最近这段时间, 在一个刚安装完的Windows计算机上,确实是一个需要解决的问题.2020年8月中旬,微软宣布:一年之后,Microsoft 365 应用与服务将不再支 ...
- 从入门到掌握 - 系统学习shell语言
简介 什么是 shell Shell是一种程序或命令行解释程序,用于解释用户直接输入的用户命令或从文件中读取的用户命令,然后将 它们传递给操作系统以进行操作或处理.要注意,这个过程是解释而不编译脚本, ...
- Python3网络学习案例二:traceroute详解
1. 写在前面 本文是基于上一篇"ping详解"写的: 不同操作系统下的命令也不同,本文仅针对windows系统,命令为"tracert xxx",效果如下 2 ...
- c#分割
Hashtable h = new Hashtable(); ArrayList l = new ArrayList(); string[] lines = System.IO.File.ReadAl ...