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

 

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

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

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

 

相关文章: