xml内容显示的4种方法

CSS(叠层样式表)和XSL(可扩展样式语言)都可以定义XML文件的显示.

如果一个XML文件仅仅用于交换信息,就无需考虑它的显示问题。编辑XML文件,我们仅仅需要关注文件的内容、信息的结构,至于它怎么显示,则交给CSS(叠层样式表)和XSL(可扩展样式语言)来完成。此外使用数据岛技术与javascript也能定制xml的内容显示,这就使得用户可以根据需要来定义数据的表现形式。

1)用css来显示xml

具体的语法如下:〈?xml-stylesheet href="URL"type="text/css"?〉其中,xml-stylesheet是关键字,表明引用样式表设定;href="URL"用来指定样式表所在的位置.

使用步骤:

a)       建立样式表档案.(*.css)

b)      css连接到xml文件。(使用上面的语法)

示例:http://www.leftworld.net/online/xml/xml_cn/xml_display.asp.htm

2)用xsl来表示xml

XSL是怎样工作的呢?XML文件在展开后是一种树状结构,称为原始树XSL处理器(现在只有IE5支持XSL,在IE5中的处理器叫:XSLStylesheetProcessor)从这个树状结构读取信息,根据XSL样式的指示对这个原始树进行排序、复制、过滤、删除、选择、运算等操作后产生另外一个结果树,然后在结果树中加入一些新的显示控制信息,如表格、其他文字、图形以及一些有关显示格式的信息。XSL处理器根据XSL样式表的指示读取XML文件中的信息,然后再重新组合后转换产生一个Well-FormedHTML文件。

XSL由三部分组成: XML文档转换(XML Document Transformation ,又叫XSLT,模式匹配语法( a pattern matching syntax ,又叫XPath), 格式话对象( a formatting object interpretationXSL FO)。

 

具体的语法如下:〈?xml-stylesheet href="URL"type="text/xsl"?〉其中,xml-stylesheet是关键字,表明引用样式表设定;href="URL"用来指定样式表所在的位置.

xmlns:xsl="http://www.w3.org/TR/WD-xsl"这一句主要用来说明该XSL样式表是使用W3C所制定的XSL,设定值就是XSL规范所在的URL地址。

1.       xsl:stylesheet:作为XSL样式表中的根元素,在每个XSL文件中都必须有。

2.       xsl:template:指定XML文件中的特定标记来定义排版样式。

属性:language:指定使用哪种脚本语言。
match
:设定从XML文件中哪个标记开始来读取信息,如果值为“/”那么表示从XML文件的根元素开始读取信息。

3.xsl:value-of:从XML文件中的特定标记中将信息读出来。

属性:select:设定读取哪一个标记中的信息。
例:〈xsl:templateselect="title"〉:表示要从〈title〉标记中将信息读出来。

4.xsl:for-each:将排版样式应用到XML文件中相同的标记(类似于循环语句)。

属性:select:设定从哪一个标记中读取数据。
order-by
:在读取信息完成之后,设定依据什么标记来进行排序,值为某一特定标记,如在标记名前用“+”号表示是由大到小的排序,反之用“-”号。

5.xsl:comment:在此元素中的内容,XSL将它作为注释信息,并不显示在浏览器中。

6.xsl:apply-templates:指示XSL处理器在该XSL样式表中寻找合适的〈xsl:template〉中设定的样式来用。

7.xsl:copy:从XML文件中拷贝标记中的信息到输出的文件中。无属性。

8.xsl:if:与一般程序中的If...Then类似。

语法:

属性:

expr ── 脚本语言表达式,计算结果为"""";如果结果为"",且通过test,则在输出中显示其中内容(可省略此项属性)。

language ── expr属性中表达式的脚本语言类型,其取值与HTML标记SCRIPTLANGUAGE属性的取值相同,缺省为"JScript"

test ──源数据测试条件。

9.xsl:choosexsl:whenxsl:otherwise:这三个元素是用来设定较为复杂的条件式,一般共同配合使用。其中xsl:whenscriptlanguagetest三种属性,与前面xsl:if中的属性含义是一样的。

10.xsl:attributexsl:element:可以在标记中附加一个属性名称或新建一个标记。XSL样式表不但可以引用HTML标记,而且也可以建立新的标记和属性,然后一起结合XML文件中的信息来显示。其中,xsl:attribute是在标记中新增一个属性,xsl:element是新建一个标记。它们有共同的属性。

示例:

使用步骤:

c)      建立xsl样式档案表

d)      xsl样式表连接到xml文件。(使用上面的语法)

3) xml数据岛技术

       xml所谓的数据岛就是在html网页中嵌入XML的一种技术。

使用步骤:

1 XML文档载入数据岛

id="xmldso" async="false">

使用上面示例代码,可以把cd_catalog.xml文件载入一个叫"xmldso"的数据岛中

 

2 XML数据绑定到HTML的表格元素中

XML数据绑定到table元素,需要在table属性添加一个资源属性,并且在span元素中添加字段属性:

元素都可以用来显示XML数据。

datasrc="#xmldso" width="100%" border="1">

此外,ie5以上的浏览器也支持在html文本中加入xml数据格式,然后本地解析。有2种形式:

a)上面那种数据岛的本地数据形式。

Eg:

 

  span, div元素,元素属性datafld 来获取数据--!>

 

b)xsl的遍历来获取数据

Eg:

< XML   id =mxhxsl>  
="1.0" ? >   
< xsl:stylesheet  xmlns:xsl ="http://www.w3.org/TR/WD-xsl" >   
< xsl:template   match ="/" >   

< table >
< tr >
       
< th  onclick ="sort('Type')"   style ="cursor:hand"  align ="center" >                                   
       
< xsl:element  name ="input" >
              
< xsl:attribute  name ="type" > button xsl:attribute >
              
< xsl:attribute  name ="name" > nameBut xsl:attribute >
              
< xsl:attribute  name ="value" > 按纽中显示的值 xsl:attribute >
              
< xsl:attribute  name ="title" > title xsl:attribute >
       
xsl:element >                
       
th >
tr >
       
< xsl:for-each   select ="子元素的路径"   order-by ="子元素" >  
       
< tr >
          
< td  >< xsl:value-of   select ="子元素" /> td >   
       
tr >
       
xsl:for-each >  
table >    

 

备注html文本中的html中的对象

xsl中要表达成这样

TYPE

NAME

VALUE

此外:xsl中还可自定义元素及属性。

4) javascript来显示xml数据

下面的代码可以将一个XML文档或xml字符串载入解析器:

< script type = " text/javascript " >
var  xmlDoc  =   new  ActiveXObject( " Microsoft.XMLDOM " )
xmlDoc.async
= " false " xmlDoc.load( " note.xml " )  // 此处装载为一xml文档,使用
loadxmlDoc.loadXML(text)    // var text,此外装载为一xml字符串,使用loadXML 
//
 ....... processing the document goes here
//
nodes=xmlDoc.documentElement.childNodes
//
to.innerText=    nodes.item(0).text
script >

 

http://www.leftworld.net/online/xml/xml_cn/tryit.asp-filename=note.htm

你可能感兴趣的:(Ajax技术专题)