使用XSL的value-of 显示XML文档

原创 2006年05月29日 23:02:00

1.XML文件内容

<?xml version="1.0" encoding="GB2312" ?>
<?xml-stylesheet type="text/xsl" href="book.xsl"?>

<BookLib>
 <Book>
  <Title>Windows程序设计</Title>
  <Author> 好孩子</Author> 
  <PressDate>2000年5月1日</PressDate>
  <Price>49.00元</Price>
 </Book>
 <Book>
  <Title>深入潜出XML</Title>
  <Author> 老虎工作室</Author> 
  <PressDate>2006年10月1日</PressDate>
  <Price>28.00元</Price>
 </Book>
 <Book>
  <Title>人工智能技术导论</Title>
  <Author> 廉师友</Author> 
  <PressDate>2006年5月20日</PressDate>
  <Price>18.00元</Price>
 </Book>
 <Book>
  <Title>IBM汇编程序设计</Title>
  <Author> 沈美名</Author> 
  <PressDate>2000年5月27日</PressDate>
  <Price>34.80元</Price>
 </Book>
</BookLib>

上面的XML文档定义了一个根节点为BookLib,有四个Book子元素的树,其中Book元素又有Title,Author,PressDate,

Price等四个子元素.

2.XSL文档

<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet xmlns:xsl="
http://www.w3.org/TR/WD-xsl">
 <xsl:template match="/">
  <html>
   <xsl:apply-templates/>
  </html>
 </xsl:template>
 <xsl:template match="BookLib">
  <body>
   <xsl:apply-templates/>
  </body>
 </xsl:template>
 <xsl:template match="Book">
  <xsl:apply-templates select="Title | Author"/>
 </xsl:template>
 <xsl:template match="Title">
  <Font size="3" color="#0000FF">
   <BR/>
   <xsl:value-of select="."/>
  </Font>
 </xsl:template>
 <xsl:template match="Author">
  <Font size="3" color="#FF0000">
   <BR/>
   <xsl:value-of select="."/>
  </Font>
 </xsl:template>
 <xsl:template match="PressDate">
  <Font size="3" color="#FF00FF">
   <BR/>
   <xsl:value-of select="."/>
  </Font>
 </xsl:template>
 <xsl:template match="Price">
  <Font size="3" color="#999999">
   <BR/>
   <xsl:value-of select="."/>
  </Font>
 </xsl:template>
</xsl:stylesheet>

XSL文档的第一个模板一般是匹配根结点的,语法为match="/"

<xsl:apply-templates/>表示如果有匹配的元素话,依次匹配所有定义的模板

<xsl:template match="Book">
  <xsl:apply-templates select="Title | Author"/>
 </xsl:template>

这几行表示匹配的元素是Book,对Title或者Author元素如果有匹配的模板则匹配,
<xsl:template match="Title">
  <Font size="3" color="#0000FF">
   <BR/>
   <xsl:value-of select="."/>
  </Font>
这几行表示如果匹配的元素是Title的话,xsl:value-of select="."这行表示显示Title的所有子元素,

注意Title可能有子元素,上面的例子Title没有子元素则显示Tilte内容

<xsl:template match="Price">
  <Font size="3" color="#999999">
   <BR/>
   <xsl:value-of select="."/>
  </Font>
 </xsl:template>
这几行表示匹配Price元素,注意在本例中,由于匹配Book元素的模板 只选择了Tilte和Author元素,所以在本例中

Price元素不会显示的!!

小结:写XSL文档中一般从根结点到具体的元素来一个一个匹配,有点从大到小的味道,大家慢慢体会

Chrome无法用xsl显示xml文档

今天在做一个xml的小试验时,发现Chrome竟然无法显示经过xsl修饰的文档!!这么高级的浏览器不应该存在这样的情况啊。经过一翻折腾加google后,发现确实是因为Chrome太高级了所以无法显示:...
  • jnuyanfa
  • jnuyanfa
  • 2016年04月25日 22:43
  • 1614

xml与xsl的转换

xml文档的一大特点是可以向多种格式的文档进行转换。比如,从一种逻辑结构的xml向另一种逻辑结构的xml转换,或是转换为可浏览的html文档等。这种xml文档的数据格式转换功能由可扩展样式单语言(xs...
  • lvyuan30276
  • lvyuan30276
  • 2016年01月05日 23:28
  • 1264

xsl与xml转换示例

java xml,xsl,html文件转换   java文件代码: package com.test; import java.io.ByteArrayInputStream; imp...
  • lvyuan30276
  • lvyuan30276
  • 2016年01月05日 23:41
  • 2377

xsl样式解析时全局变量的用法

1.首先记住 variable这个变量在xsl中只得赋值一次,以后不得再改变了..呵呵.这样怎么称得变量了,不知道draft的专家们是吃什么饭的. 2.所谓全局,因为xsl:variable元素...
  • z69183787
  • z69183787
  • 2014年05月21日 10:04
  • 3871

通过XSLT转换XML

一 介绍 XSLT是一种用来转换XML文档结构的语言,它是EXtensible Style Language Extensions Transformations的缩写。 XSLT类似与HTML中...
  • chengqiuming
  • chengqiuming
  • 2017年04月12日 10:47
  • 473

用XSL进行日期格式转换

XSL做日期格式转换的函数源代码如下: xml version="1.0" encoding="gb2312"?> xsl:stylesheet version="1.0" ...
  • qq_35204154
  • qq_35204154
  • 2017年03月27日 23:05
  • 714

XML文件与xsl文件的作用与关系

XML文件的发明可以说是计算机领域的一大进步,有着说不清的好处,比如格式规范,跨平台等。XML文件的主要作用是数据的载体,用于承载数据。跟XML相关的格式文件还有一大堆,这里我们慢慢来说清楚。   ...
  • sundacheng1989
  • sundacheng1989
  • 2016年08月09日 14:01
  • 4155

xml与xsl的转换

出处:http://blog.csdn.net/lvyuan30276/article/details/50466052 xml文档的一大特点是可以向多种格式的文档进行转换。比如,从一种逻辑结构的x...
  • yintianqin
  • yintianqin
  • 2017年02月07日 10:21
  • 219

XSL语言的三种模式

xsl 中if的用法           true         手机号码:     text     mobile       ...
  • ToBeTheBestman
  • ToBeTheBestman
  • 2017年02月18日 10:59
  • 539

[XML]学习笔记(八)XSLT

一、XSL(eXtensible Stylesheet Language)扩展样式表语言:主要包含三个部分——XSLT用于XML文档转换,XPath用于在XML文档中导航,XSL-FO用于XML文档格...
  • CristianoJason
  • CristianoJason
  • 2016年05月20日 00:45
  • 4354
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用XSL的value-of 显示XML文档
举报原因:
原因补充:

(最多只允许输入30个字)