第7章 XSL高级应用
这是一种非常常见的方法,因为如果遇到不支持XML的浏览器,必须用HTML来保持兼容性.
要使用这种方法,就要利用javascript和DOMDocument对象.
一般的方法:
定义两个DOMDocument对象,一般load xml文档,一个load xsl文档,然后用transformNode进行转换输出.
例子:
ex28.xml
<!-- 注意这里没有对XSL文件的引用 -->
<CATALOG>
<CD>
<TITLE>天空</TITLE>
<ARTIST>王菲</ARTIST>
<LANGUAGE>国语</LANGUAGE>
<COMPANY>福茂唱片</COMPANY>
<YEAR>1995</YEAR>
<PRICE>28元</PRICE>
</CD>
<CD>
<TITLE>不老的传说</TITLE>
<ARTIST>张学友</ARTIST>
<LANGUAGE>粤语</LANGUAGE>
<COMPANY>宝丽金</COMPANY>
<YEAR>1997</YEAR>
<PRICE>28元</PRICE>
</CD>
</CATALOG>
ex28.xsl
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="/">
<html>
<head>
<title>转换结果</title>
</head>
<body>
<p align="center"><font color="#FF0000" size="5">CD大卖场</font></p>
<table width="95%" border="1" bgcolor="#00FFFF">
<tbody>
<tr>
<td width="20%"><div align="center">专辑名称</div></td>
<td width="15%"><div align="center">歌手</div></td>
<td width="15%"><div align="center">语言</div></td>
<td width="15%"><div align="center">发行公司</div></td>
<td width="15%"><div align="center">年份</div></td>
<td width="15%"><div align="center">价格</div></td>
</tr>
<xsl:for-each select="//CD">
<tr>
<td><div align="center">
<xsl:value-of select="TITLE"/>
</div></td>
<td><div align="center">
<xsl:value-of select="ARTIST"/>
</div></td>
<td><div align="center">
<xsl:value-of select="LANGUAGE"/>
</div></td>
<td><div align="center">
<xsl:value-of select="COMPANY"/>
</div></td>
<td><div align="center">
<xsl:value-of select="YEAR"/>
</div></td>
<td><div align="center">
<xsl:value-of select="PRICE"/>
</div></td>
</tr>
</xsl:for-each>
</tbody>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
output.html
<head>
<title>转换为HTML</title>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312"/>
</head>
<XML id="source" src="ex28.xml"/>
<XML id="stylesheet" src="ex28.xsl"/>
<script language="javascript">
function viewxml()
{
a.innerText=source.xml;
}
function viewxsl()
{
a.innerText=stylesheet.xml;
}
function change()
{
var xmldom=new ActiveXObject("Microsoft.XMLDOM");
xmldom.load("ex28.xml");
var xsldom=new ActiveXObject("Microsoft.XMLDOM");
xsldom.load("ex28.xsl");
document.write(xmldom.transformNode(xsldom));
}
</script>
<body>
<p>单击下面三个按钮查看效果</p>
<p> </p>
<input name="button1" type="button" value="显示XML文件" onclick="viewxml()"/>
<input name="button2" type="button" value="显示XSL文件" onclick="viewxsl()"/>
<input name="button3" type="button" value="显示转换文件" onclick="change()"/>
<div id="a"></div>
</body>
</html>
这样输出的HTML就直接用document.write写出转换方法transformNode的返回HTML代码就可以了.
第7章 XSL高级应用相关推荐
- 计算机论文word版,计算机应用基础第05章Word高级应用-毕业论文排版
计算机应用基础第05章Word高级应用-毕业论文排版 (31页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 5.1.1 任务描述 刘海是 ...
- 第九章 模板高级进阶
2019独角兽企业重金招聘Python工程师标准>>> 第九章 模板高级进阶 虽然大多数和Django模板语言的交互都是模板作者的工作,但你可能想定制和扩展模板引擎,让它做一些它不能 ...
- JavaScript核心知识第二章---事件高级(含大量代码分析)
前言 ❤️ 一个人有多重的才华,骨子里就会刻上多大重量的谦卑 ❤️ JavaScript核心知识第二章---事件高级 一.JavaScript 事件高级 (1)注册事件(绑定事件) 1.1 注册事件概 ...
- 【《C Primer Plus》读书笔记】第17章:高级数据表示
[<C Primer Plus>读书笔记]第17章:高级数据表示 17.1 研究数据表示 17.2 从数组到链表 17.3 抽象数据类型(ADT) 17.4 队列ADT 17.5 用队列进 ...
- 《软件测试的艺术》第六章 更高级别的测试
<软件测试的艺术>第六章 更高级别的测试 6.0 前言 软件开发过程模型 6.1 功能测试 6.2 系统测试 6.2.1 能力测试 6.2.2 容量测试 6.2.3 强度测试 6.2.4 ...
- Spring基础专题——第十一章(高级注解编程完结)
前言:去年到现在一直没有很好的时间完成这个spring基础+源码的博客目标,去年一年比较懒吧,所以今年我希望我的知识可以分享给正在奋斗中的互联网开发人员,以及未来想往架构师上走的道友们我们一起进步,从 ...
- 数据基础---《利用Python进行数据分析·第2版》第12章 pandas高级应用
之前自己对于numpy和pandas是要用的时候东学一点西一点,直到看到<利用Python进行数据分析·第2版>,觉得只看这一篇就够了.非常感谢原博主的翻译和分享. 前面的章节关注于不同类 ...
- Java面向对象笔记 • 【第11章 Swing高级应用】
全部章节 >>>> 本章目录 11.1 JTable表格组件 11.1.1 JTable表格组件 11.1.2 实践练习 11.2 菜单组件 11.2.1 菜单组件 11. ...
- 第二章 Redis高级
第二章:Redis高级 学习目标 目标1:能够说出redis中的数据删除策与略淘汰策略 目标2:能够说出主从复制的概念,工作流程以及场景问题及解决方案 目标3:能够说出哨兵的作用以及工作原理,以及如何 ...
- 精通比特 - 第4章,高级密钥和地址
4.5 高级密钥和地址 在以下部分中,我们将看到高级形式的密钥和地址,诸如加密私钥.脚本和多重签名地址,靓号地址,和纸钱包. 4.5.1 加密私钥(BIP0038) 私钥必须保密.私钥的机密性需求事实 ...
最新文章
- Redhat7修改默认运行级别方法
- 软件测试功能报告,软件功能测试报告
- python标记跳转_Geany的跳转到标记定义“功能如何使用
- 装车机器人_智造春天脚步近 青岛这家机器人公司着手打造模块化、标准化技术平台...
- 11.19 rpm:RPM包管理器
- codeforce 768B Code For 1
- css中的单位换算_CSS单位px、em、rem及它们之间的换算关系
- REVERSE-COMPETITION-HGAME2022-Week1
- 一句话总结重构、重载、重写
- bzoj 1620: [Usaco2008 Nov]Time Management 时间管理(贪心)
- (转)ICO是区块链与生俱来的特性,是金融深化的终局
- html设置按钮不同状态的背景图片,CSS实例:创建一个鼠标感应换图片的按钮
- 排队论在计算机和通信领域的应用,随机过程与排队论——及其在计算机领域中的应用.pdf...
- layer.prompt输入框改成laydate时间控件
- 命令登陆mysql数据库_命令操作Mysql数据库
- 计算机类毕业论文中期检查,计算机类毕业论文中期检查表
- html页面的dtd是什么意思,html dtd文件解释
- jsoup模拟登陆合肥工业大学信息门户
- MCS51 系列单片机的中央处理器(CPU)
- jsp中div 标签到底有什么用?
热门文章
- idea配置java和maven_Maven配置,使用IntelliJ IDEA和Maven创建Java Web项目
- MAC编译jogl/gluegen很顺利
- 短路主板电源针,启动电脑的办法
- Could not initialize English chunker/Could not load file from classpath: ‘/en-token.bin‘
- CSDN排名规则变化略谈
- 错误解决办法:exec /usr/lib/ssh/ssh-askpass : No such file or directory error.
- X86栈切换,任务切换
- mysql和memcache 查询_使用Memcache缓存MySQL查询(转载)
- extjs 表格数据重新加载_将【金数据】实时获取到Excel的小技能
- mysql中regexp用法_MySQL中REGEXP正则表达式使用大全