• 【转】java使用XSL+XML生成HTML文件


    转自:http://www.blogjava.net/yangxiang/archive/2009/08/11/290688.html

    1、xml.xml
    <?xml version="1.0" encoding="utf-8"?>
    <?xml-stylesheet type="text/xsl" href="xsl.xsl"?>
    <book>
        
    <title>XML与JSP</title>
        
    <chapter>
            
    <title>第1章 认识XML与DTD</title>
            
    <section>
                
    <title>XML的产生</title>
                
    <example>HelloWorld.html</example>
            
    </section>
        
    </chapter>
        
    <chapter>
            
    <title>第2章 XML名称空间</title>
            
    <section>
                
    <title>名称空间在元素和属性中的应用</title>
                
    <section>
                    
    <title>名称空间在元素中的应用</title>
                    
    <example>people.xml</example>
                
    </section>
                
    <section>
                    
    <title>缺省名称空间</title>
                    
    <example>book.xml</example>
                
    </section>
                
    <section>
                    
    <title>名称空间在属性中的应用</title>
                    
    <example>book2.xml</example>
                
    </section>
            
    </section>
            
    <section>
                
    <title>名称空间和DTD</title>
            
    </section>
        
    </chapter>
    </book>

    2、xsl.xsl
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        
    <xsl:output method="html" version="1.0" encoding="utf-8" standalone="yes"/>
        
    <xsl:template match="/">
            
    <html>
                
    <head>
                    
    <title>使用XML+XSLT生成的HTML文件</title>
                
    </head>
                
    <body>
                    
    <xsl:apply-templates select="book"/>
                
    </body>
            
    </html>
        
    </xsl:template>
        
    <xsl:template match="chapter">
            
    <br/>
            
    <br/>
            
    <xsl:value-of select="./title"/>
            
    <xsl:apply-templates select="./section"/>
        
    </xsl:template>
        
    <xsl:template match="chapter/section">
            
    <br/>
            
    <br/>
            
    <xsl:text>    </xsl:text>
            
    <!--<xsl:number format="1. " level="multiple"/>-->
            
    <xsl:number format="1. " level="multiple" count="chapter | section" from="book"/>
            
    <xsl:value-of select="./title"/>
            
    <xsl:apply-templates select="./section"/>
        
    </xsl:template>
        
    <xsl:template match="chapter/section/section">
            
    <br/>
            
    <br/>
            
    <xsl:text>        </xsl:text>
            
    <!--<xsl:number format="1. " level="multiple"/>-->
            
    <xsl:number format="1. " level="multiple" count="chapter | section" from="book"/>
            
    <xsl:value-of select="./title"/>
            
    <xsl:number value="123456789" grouping-separator="," grouping-size="3"/>
        
    </xsl:template>
    </xsl:stylesheet>

    3、java.java
    package test;

    import java.io.File;
    import java.io.IOException;

    import javax.xml.transform.Result;
    import javax.xml.transform.Source;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerConfigurationException;
    import javax.xml.transform.TransformerException;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.stream.StreamResult;
    import javax.xml.transform.stream.StreamSource;

    import org.junit.Test;

    public class Train {
        @Test
        
    public void test() throws IOException {
            String xmlFileName 
    = "d:/test/xml.xml";
            String xslFileName 
    = "d:/test/xsl.xsl";
            String htmlFileName 
    = "d:/test/html.html";
            Train.Transform(xmlFileName, xslFileName, htmlFileName);
        }

        
    public static void Transform(String xmlFileName, String xslFileName,
                String htmlFileName) {
            
    try {
                TransformerFactory tFac 
    = TransformerFactory.newInstance();
                Source xslSource 
    = new StreamSource(xslFileName);
                Transformer t 
    = tFac.newTransformer(xslSource);
                File xmlFile 
    = new File(xmlFileName);
                File htmlFile 
    = new File(htmlFileName);
                Source source 
    = new StreamSource(xmlFile);
                Result result 
    = new StreamResult(htmlFile);
                System.out.println(result.toString());
                t.transform(source, result);
            } 
    catch (TransformerConfigurationException e) {
                e.printStackTrace();
            } 
    catch (TransformerException e) {
                e.printStackTrace();
            }
        }
    }

    4、html.html 

    <html>
    <head>
    <META http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>使用XML+XSLT生成的HTML文件</title>
    </head>
    <body>
        XML与JSP
        <br>
    <br>第1章 认识XML与DTD<br>
    <br>    1.1. XML的产生
        <br>
    <br>第2章 XML名称空间<br>
    <br>    2.1. 名称空间在元素和属性中的应用<br>
    <br>        2.1.1. 名称空间在元素中的应用123,456,789<br>
    <br>        2.1.2. 缺省名称空间123,456,789<br>
    <br>        2.1.3. 名称空间在属性中的应用123,456,789<br>
    <br>    2.2. 名称空间和DTD
    </body>

    </html> 

    5、效果
    XML与JSP 

    第1章 认识XML与DTD

        1.1. XML的产生 

    第2章 XML名称空间

        2.1. 名称空间在元素和属性中的应用

            2.1.1. 名称空间在元素中的应用123,456,789

            2.1.2. 缺省名称空间123,456,789

            2.1.3. 名称空间在属性中的应用123,456,789

        2.2. 名称空间和DTD
  • 相关阅读:
    request.getParameterMap 跟request.getParameter区别
    SQL语句中---删除表数据drop、truncate和delete的用法
    今日出现两个错误
    html和jsp的区别及优缺点
    怎么将 美国的日期格式改成中国的日期格式
    java web相关的面试题
    i++与++i的关系
    Oracle常见的语法,以及跟MySQL的区别
    DBA
    java基础之印象笔记
  • 原文地址:https://www.cnblogs.com/abinxm/p/2350609.html
Copyright © 2020-2023  润新知