XML基础知识

一、定义

  • 定义

XSLT(=XSL转换):将XML转换为XHTML或其他XML文档的语言。(这种XML文档即可被浏览器识别,比如HTML,XHTML)使用XPath在XML文档中进行导航。

  • 如何工作

XSLT使用XPath来定义源文档中可匹配一个或多个预定义模板的部分,一旦匹配被找到,XSLT就把源文档的匹配部分转换为结果文档。

  • 兼容性
浏览器 支持版本
FF 1.0.2开始支持
Mozilla 支持
Netscaoe 8开始支持
Opera 9开始支持
IE 6开始支持

二、语法

1. XSL样式表本身是一个XML文档,由XML声明起始

2.样式表声明

或者

****

3. 向XML文档添加XSL样式表引用





<catalog>

  <cd>

    <title>Empire Burlesquetitle>

    <artist>Bob Dylanartist>

    <country>USAcountry>

    <company>Columbiacompany>

    <price>10.90price>

    <year>1985year>

  cd>
.
.
.

catalog>

4. 用于构建模板。其属性match用于关联XML元素和模板,属性值是XPath表达式,如果值为match=”/”,则定义的是整个文档。


<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
 <html>
 <body>
   <h2>My CD Collectionh2>
   <table border="1">
     <tr bgcolor="#9acd32">
       <th>Titleth>
       <th>Artistth>
     tr>
     <tr>
       <td>.td>
       <td>.td>
     tr>
   table>
 body>
 html>
xsl:template>

xsl:stylesheet>

5. 提取某个选定节点的值,并将值添加到转换的输出流中。仅有一个属性select,select属性的值是·一个XPath表达式,用于在XML文档中进行导航。

<table border="1">
     <tr bgcolor="#9acd32">
       <th>Titleth>
       <th>Artistth>
     tr>
     <tr>
      <td><xsl:value-of select="catalog/cd/title"/>td>
      <td><xsl:value-of select="catalog/cd/artist"/>td>
     tr>
   table>

6. 用于选取指定的节点集中每个节点。有一个属性,select值为一个XPath表达式,用于在XML文档中导航。

<table border="1">
      <tr bgcolor="#9acd32">
        <th>Titleth>
        <th>Artistth>
      tr>
      <xsl:for-each select="catalog/cd">
      <tr>
        <td><xsl:value-of select="title"/>td>
        <td><xsl:value-of select="artist"/>td>
      tr>
      xsl:for-each>
    table>

6.1对结果进行排序。用在元素内部。其属性select是XML文档中的节点名称,即XML元素;指明排序的依据。默认排序是按照英文字母顺序表。







放在元素内部,对XML文件内容进行条件测试。必选的test属性指明需要求值的表达式。其中“>、<”等符号必须用实体(如>)表示。


<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
  <html>
  <body>
    <h2>My CD Collectionh2>
    <table border="1">
      <tr bgcolor="#9acd32">
        <th>Titleth>
        <th>Artistth>
      tr>
      <xsl:for-each select="catalog/cd">
      <xsl:if test="price > 10">
        <tr>
          <td><xsl:value-of select="title"/>td>
          <td><xsl:value-of select="artist"/>td>
        tr>
      xsl:if>
      xsl:for-each>
    table>
  body>
  html>
xsl:template>
xsl:stylesheet>

7. ,,针对XML文件进行多重条件测试。

 <xsl:for-each select="catalog/cd">
      <tr>
        <td><xsl:value-of select="title"/>td>
        <xsl:choose>
          <xsl:when test="price > 10">
            <td bgcolor="#ff00ff">
            <xsl:value-of select="artist"/>td>
          xsl:when>
          <xsl:otherwise>
            <td><xsl:value-of select="artist"/>td>
          xsl:otherwise>
        xsl:choose>
      tr>
      xsl:for-each>

8.将模板应用于当前的元素或者当前元素的子节点。其select属性决定仅仅处理与属性匹配的子元素。select属性可以决定被处理的子元素的顺序


<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<html>
<body>
<h2>My CD Collectionh2> 
<xsl:apply-templates/> 
body>
html>
xsl:template>

<xsl:template match="cd">
<p>
<xsl:apply-templates select="title"/> 
<xsl:apply-templates select="artist"/>
p>
xsl:template>

<xsl:template match="title">
Title: <span style="color:#ff0000">
<xsl:value-of select="."/>span>
<br />
xsl:template>

<xsl:template match="artist">
Artist: <span style="color:#00ff00">
<xsl:value-of select="."/>span>
<br />
xsl:template>

xsl:stylesheet>

你可能感兴趣的:(html,xml,浏览器,文档,xml)