使用XSLT或者CSS显示 XML

一. 使用CSS显示 XML

 使用 CSS 来格式化 XML 文档是有可能的。

 这个是CSS文件:

CATALOG
ExpandedBlockStart.gifContractedBlock.gif
{} {
background-color
: #ffffff;
width
: 100%;
}

CD
ExpandedBlockStart.gifContractedBlock.gif
{} {
display
: block;
margin-bottom
: 30pt;
margin-left
: 0;
}

TITLE
ExpandedBlockStart.gifContractedBlock.gif
{} {
color
: #FF0000;
font-size
: 20pt;
}

ARTIST
ExpandedBlockStart.gifContractedBlock.gif
{} {
color
: #0000FF;
font-size
: 20pt;
}

COUNTRY,PRICE,YEAR,COMPANY
ExpandedBlockStart.gifContractedBlock.gif
{} {
display
: block;
color
: #000000;
margin-left
: 20pt;
}

 

在XML文件加入<?xml-stylesheet type="text/css" href="cd_catalog.css"?>,把这个 XML 文件链接到 CSS 文件:

<? xml version="1.0" encoding="ISO-8859-1" ?>
<? xml-stylesheet type="text/css" href="cd_catalog.css" ?>
< CATALOG >
  
< 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 >

</ CATALOG >


得到这样的显示效果:

 

注释:使用 CSS 格式化 XML 不能代表 XML 文档样式化的未来。XML 文档应当使用 W3C 的 XSL 标准进行格式化!

 

二. 使用XSLT显示 XML 

XSLT 是首选的 XML 样式表语言。

XSLT (eXtensible Stylesheet Language Transformations) 远比 CSS 更加完善。

使用 XSLT 的方法之一是在浏览器显示 XML 文件之前,先把它转换为 HTML.

XSLT文件:

<? xml version="1.0" encoding="ISO-8859-1" ?>
<!--  Edited with XML Spy v2007 (http://www.altova.com)  -->
< html  xsl:version ="1.0"  xmlns:xsl ="http://www.w3.org/1999/XSL/Transform"  xmlns ="http://www.w3.org/1999/xhtml" >
  
< body  style ="font-family:Arial,helvetica,sans-serif;font-size:12pt;
        background-color:#EEEEEE"
>
    
< xsl:for-each  select ="breakfast_menu/food" >
      
< div  style ="background-color:teal;color:white;padding:4px" >
        
< span  style ="font-weight:bold;color:white" >
        
< xsl:value-of  select ="name" /></ span >
        - 
< xsl:value-of  select ="price" />
      
</ div >
      
< div  style ="margin-left:20px;margin-bottom:1em;font-size:10pt" >
        
< xsl:value-of  select ="description" />
        
< span  style ="font-style:italic" >
          (
< xsl:value-of  select ="calories" />  calories per serving)
        
</ span >
      
</ div >
    
</ xsl:for-each >
  
</ body >
</ html >

下面是此 XML 文件的一个片断。 第二行,<?xml-stylesheet type="text/xsl" href="simple.xsl"?>,把这个 XML 文件链接到 XSL 文件:

<? xml version="1.0" encoding="ISO-8859-1" ?>
<?xml-stylesheet type="text/xsl" href="simple.xsl"?>
< breakfast_menu >
  
< food >
    
< name > Belgian Waffles </ name >
    
< price > $5.95 </ price >
    
< description >
       two of our famous Belgian Waffles
    
</ description >
    
< calories > 650 </ calories >
  
</ food >
</ breakfast_menu >

 

效果图:


 

转载于:https://www.cnblogs.com/iswszheng/archive/2009/05/18/1459371.html

[实验目的] 1、学习如何使用XMLSPY集成开发环境完成XML Schema相关的开发工作。 2、掌握XML Schema与DTD之间的区别,能够完成两者之间的转换;掌握在XML Schema中如何定义元素和属性,如何使用限制、列表和合并派生自己的简单数据类型,如何定义复杂数据类型,全局/局部元素和数据类型之间的区别;如何将XML Schema文档关联到XML实例数据文档,并完成文档的有效性验证。 3、掌握如何准确定义数据之间的参照完整性约束,如何在模式中使用多态性支持,如何在文档中定义空值等等。 [实验内容和步骤] 1、使用XMLSPY集成开发环境,新建XML Schema文档,在各种不同的编辑视图中尝试采用不同的方式完成XML Schema文档的编辑和查看;并使用XMLSPY提供的便利,建立XML、Schema两者之间的关联,进行XML文档的良构以及有效性验证。 2、严格按照下图给出的文档模型,在XML Schema编辑环境的Schema视图中完成book.xsd的编写(不要使用Text视图进行编写): 在上图中,没有指定简单类型元素和属性的数据类型,请根据合理的情况,完成数据类型的创建(至少使用到限制方式中的三种以上的限制方面),请在IDE的Details视图->type和Facets中完成上述任务。 在上图中,有三个title元素分别表示book、section和figure的标题,请定义下述类型: titleType:1-100个字符的文本; bookTitleType:titleType类型限制派生的子类型,要求取枚举值“Data On the Web”、“TCP/IP Illustrated”等; sectionTitleType:titleType类型限制派生的子类型,要求必须形如“1.xxxx”、“1-1.xxxx”等等(表示第一节、第一节下面的第一节等等,注意section是递归的形式); figureTitleType:titleType类型限制派生的子类型,要求必须形如“1-1.xxxx” 、“1-1-1.xxxx”(表示第一节中的第一个图、第一节下面的第一节的第一个图等等); 然后编写book.xml,并使用多态性(即所有title的类型均为titleType,而数据实例中指明具体类型),请确保通过文档有效性验证。 3、在上次的DTD实验中,我们编写了SpyBase1.xml、SpyBase2.xml、以及SpyBase1.dtd和SpyBase2.dtd,这次需要完成SpyBase1.xsd和SpyBase2.xsd,建立模式与数据之间的关联,并进行文档有效性验证。在编写的XSD文档SpyBase1.xsd中,要求使用key/keyref描述数据的实体完整性以及数据之间的参照完整性(SpyBase2.xml不需要,因为已经使用嵌套消除了参照关系)。 [实验思考] 与ID/IDREF相比,key/keyref有哪些优点,在使用上有何不同? 假设SpyBase1.xml中的alias、mission、spy来自不同的命名空间中,如何在Schema中对其进行限定,请在XMLSPY中完成相应的xsd文档?修改SpyBase1.xml,并验证新的SpyBase1_2.xsd是否正确? [提交时间及内容] 最后提交时间 2013年?月?日 提交内容 提交book.xsd、book.xml使用多态)。 提交SpyBase1. xsd、SpyBase2. xsd。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值