【问题标题】:transform oracle's xml to html using xslt?使用 xslt 将 oracle 的 xml 转换为 html?
【发布时间】:2013-06-12 00:18:33
【问题描述】:

我需要通过从 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>

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

【问题讨论】:

    标签: sql xml oracle xslt


    【解决方案1】:
    <?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>
    

    【讨论】:

    • 非常感谢!你是 xsl 的大师)!
    猜你喜欢
    • 2014-03-08
    • 2012-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-24
    • 1970-01-01
    相关资源
    最近更新 更多