使用xslt将oracle的xml转换为html?

时间:2013-06-15 12:58:33

标签: sql xml oracle xslt

我需要通过从oracle sqldeveloper HR模式下载数据集来转换xml(使用xslt的html)文件!请帮我写xsl文件,将下载的数据转换成表格!

一块xml

<?xml version='1.0' encoding='UTF8'?>
<RESULTS>
  <ROW>
    <COLUMN NAME="Employee_Names"><![CDATA[Steven]]></COLUMN>
    <COLUMN NAME="Salary"><![CDATA[24000]]></COLUMN>
    <COLUMN NAME="STREET_ADDRESS"><![CDATA[1297 Via Cola di Rie]]></COLUMN>
  </ROW>
  <ROW>
    <COLUMN NAME="Employee_Names"><![CDATA[Neena]]></COLUMN>
    <COLUMN NAME="Salary"><![CDATA[17000]]></COLUMN>
    <COLUMN NAME="STREET_ADDRESS"><![CDATA[1297 Via Cola di Rie]]></COLUMN>
  </ROW>

我的所有数据都以字符串而不是表格显示(请帮助

Database table

1 个答案:

答案 0 :(得分:2)

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

  <xsl:output method="xml" indent="yes"
      doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
      doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"/>

  <xsl:template match="/RESULTS">
    <html>
      <head>
        <title>Table data</title>
      </head>
      <body>
        <table>
          <thead>
            <!-- Extract the column-names from the first row. -->
            <xsl:apply-templates select="ROW[1]" mode="header"/>
          </thead>
          <tbody>
            <xsl:apply-templates select="ROW"/>
          </tbody>
        </table>
      </body>
    </html>
  </xsl:template>

  <!-- "header"-mode generates the column headers. -->
  <xsl:template match="ROW" mode="header">
    <tr>
      <xsl:apply-templates match="COLUMN" mode="header"/>
    </tr>
  </xsl:template>

  <xsl:template match="COLUMN" mode="header">
    <th>
      <xsl:value-of select="@NAME"/>
    </th>
  </xsl:template>

  <!-- normal mode generates the table data -->
  <xsl:template match="ROW">
    <tr>
      <xsl:apply-templates match="COLUMN"/>
    </tr>
  </xsl:template>

  <xsl:template match="COLUMN">
    <td>
      <xsl:value-of select="text()"/>
    </td>
  </xsl:template>

</xsl:stylesheet>

<强>输出:

<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <title>Table data</title>
  </head>
  <body>
    <table>
      <thead>
        <tr>
          <th>Employee_Names</th>
          <th>Salary</th>
          <th>STREET_ADDRESS</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>Steven</td>
          <td>24000</td>
          <td>1297 Via Cola di Rie</td>
        </tr>
        <tr>
          <td>Neena</td>
          <td>17000</td>
          <td>1297 Via Cola di Rie</td>
        </tr>
      </tbody>
    </table>
  </body>
</html>