oracle笔记 11

XML
  格式正规的XML

  有效的XML文件 (DTD  +  Schema)

  显示XML文件 (css串级样式表  /  XSL  - XML SHeet Language)

    css -  功能有限 HTML 使用在XML上功能少
 
    xsl - XML样式语言  把HTML和XML中元素结合起来   

   
 <1> CSS显示
    在XML中加入样式指令
      <?xml-stylesheet type="text/css" href="hello.css"?>
              
    css样式表的结构
       <元素名>{
         <显示样式的描述>
       }

    . 含有属性class的元素
   answer.ans  含有class属性并且属性的值是"ans"的answer元素

   表格来显示??? css1 中没有层次结构的表现
                css2  各种丰富的表现 IE不支持css2
    
    .css文件不是XML文件


  <2>xsl  XML样式语言
      .xsl文件 是一个XML文件
  <?xml-stylesheet type="text/xsl" href="student.xsl"?>
 
XSL文件如何来写??
   HTML  +  选择XML中的元素的语言(XPath)
                XPath 路径表达式 类似于数据库中的SELECT语句
                选择元素或属性(XPath)

 根元素
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"/>
    xsl命名空间有2个
        a)xmlns:xsl="http://www.w3.org/TR/WD-xsl"  工作草案
        b)xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
               工作标准
  建议大家都使用工作标准
   2个命名空间中所定义的元素有微小的不同

  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"中
定义的XSL中所能使用的标记

  Html文件的基本结构
   <html>
     <head><title></title>
</head>
     <body>
 
</body>
   </html>

最基本的XSL标记
  a)  <xsl:template match="/"> 定义一个模板去匹配/所指的内容
        match中所写的内容 就是一个XPath表达式
        / 代表整个XMl文件
  b) <xsl:value-of select="name"/> 取出name元素的内容
       select中写的也是一个XPath表达式
       name  代表XML中name元素
     <xsl:value-of/>  表示取当前元素的值

  c) <xsl:for-each select="/roster/student"
order-by="-score"> for循环选择
select 表示选择所有的/roster/student
order-by="-score" 表示排序按score降序
          +score  表示排序按score升序   
 
 
扩展的几个标记
  d) <xsl:apply-templates select="/roster/student"/>
     递归(循环)使用模板的标记  可以达到筛选的目的
     和<xsl:for-each select=""/> 都表示了循环
 
 选择元素时可以使用的XPath表达式
 
     /roster/student     表示student元素
    /roster/student[position()=2]  表示第2个student元素
    /roster/student[position()=1]  表示第1个student元素
    /roster/student[last()]  表示最后一个student元素

    /roster/student[@ID=104]  表示属性ID=104的student元素

    /roster/student@ID    表示student元素的属性ID

 <xsl:apply-templates/> 使用后面定义的每个模板


 <xsl:for-each select="" order-by="-score"/>
     只能在命名空间 xmlns:xsl="http://www.w3.org/TR/WD-xsl"
     中使用

 <xsl:for-each select=""/>
  <xsl:sort select="price" order="descending"/>
     只能在命名空间 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
     中使用
     order = "descending" 降序
     order = "ascending" 升序


 e)单条件选择
  <xsl:if test="条件">
            .....
        </xsl:if>


 f)多条件选择

<xsl:choose>
    <xsl:when test="条件">
          ....
    </xsl:when>
    <xsl:when test="条件">
          ....
    </xsl:when>
    <xsl:when test="条件">
          ....
    </xsl:when>
         .
         .
         .
    <xsl:otherwise>
          ....
    </xsl:otherwise>
</xsl:choose>

<例子>
 部门和员工表的查询(emp 和 dept)

XML的显示  css/xsl
  xsl 显示XML数据的
     HTML + xsl标记  + XPath



 

 
        








 



 




 




     






posted @ 2013-01-25 17:39  金虹巴巴  阅读(128)  评论(0编辑  收藏  举报