Convert XML to HTML(XML 转换 HTML)(1)

来源:互联网 发布:java简单加法计算器 编辑:程序博客网 时间:2024/05/29 09:18
    在做TIBCO项目的时候,项目要求把XML 转换成 HTML,上网查了很多资料,结果才知道是利用XSLT(Extensible Stylesheet language Transformations)来进行转换。然后就开始学习XSLT的一些语法知识,学习如何进行转换。下面我就把我学习的一些东西进行分享;
      
首先列出我的XML代码(tibco.xml)
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <wrapper>
  3.    <question>
  4.      <subject>How can I go to HangZhou?</subject>
  5.      <keywords>
  6.         <keyword>how</keyword>
  7.         <keyword>go to</keyword>
  8.         <keyword>hang zhou</keyword>
  9.      </keywords>
  10.      <sender>
  11.          <contact type="email" >zhangshusheng041@yahoo.com.cn</contact>
  12.          <contact type="skype" >princeNmh</contact>
  13.      </sender>  
  14.    </question>  
  15.    <answers>
  16.      <answer match_rate="1/3" source="FILE" >  
  17.        <keywords>
  18.            <keyword>hangzhou</keyword>
  19.            <keyword>weather</keyword>    
  20.        </keywords> 
  21.        <content>Fine weather</content>
  22.      </answer>   
  23.      <answer match_rate="2/3" source="DB " >
  24.        <keywords>
  25.            <keyword>hangzhou</keyword>
  26.            <keyword>go to</keyword>
  27.        </keywords> 
  28.        <content>By car</content>
  29.      </answer>   
  30.    </answers>
  31. </wrapper>
再列出XSLT的代码
 
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Edited by XMLSpy? -->
  3. <xsl:stylesheet version="1.0"
  4. xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  5. <xsl:output method='html' version='1.0' encoding='UTF-8' indent='yes'/>
  6. <xsl:template match="/">
  7.   <html>
  8.   <body>
  9.   <h2>Question Search</h2>
  10.     <table border="0">
  11.       <xsl:for-each select="wrapper">
  12.       <tr>
  13.     <th bgcolor="#9acd32" align="right">Question:</th>  
  14.         <td><xsl:value-of select="question/subject"/></td>
  15.       </tr>
  16.         <tr>
  17.       <th  bgcolor="#9acd32" align="right">Keyword:</th>   
  18.           <td align="left">
  19.             <xsl:for-each select="question/keywords/keyword">
  20.             <u><xsl:value-of select="."/></u>
  21.             </xsl:for-each>
  22.      </td>       
  23.     </tr>
  24.     <tr>
  25.          <th bgcolor="#9acd32" align="right">Contact Detail:</th>  
  26.          <td algin="left">
  27.     <table>
  28.         <xsl:for-each select="question/sender/contact">     
  29.               <tr> <td><xsl:value-of select="@type"/>:<xsl:value-of select="."/></td></tr>
  30.         </xsl:for-each>
  31.     </table>
  32.         </td>
  33.     </tr>
  34.     <tr>
  35.         <th bgcolor="#9acd32" align="right">Content:</th>  
  36. <td>
  37. <table>     
  38.         
  39.         <xsl:for-each select="answers/answer/content">
  40.         <tr><td><xsl:value-of select="."/></td></tr>
  41.         </xsl:for-each>
  42. </table>
  43. </td>
  44.     </tr>
  45.       </xsl:for-each>
  46.     </table>
  47.   </body>
  48.   </html>
  49. </xsl:template>
  50. </xsl:stylesheet>
以上是执行结果!
 
好了,明天我来会解释一些具体的语法