yangxiang

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  8 随笔 :: 0 文章 :: 73 评论 :: 0 Trackbacks
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>&nbsp;&nbsp;&nbsp;&nbsp;1.1. XML的产生
    
<br>
<br>第2章 XML名称空间<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;2.1. 名称空间在元素和属性中的应用<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.1.1. 名称空间在元素中的应用123,456,789<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.1.2. 缺省名称空间123,456,789<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.1.3. 名称空间在属性中的应用123,456,789<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;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

posted on 2009-08-11 17:05 『 Y X 』 阅读(5031) 评论(1)  编辑  收藏

评论

# re: java使用XSL+XML生成HTML文件 2013-07-30 18:05 fdf
这个与XSL文件有什么关系啊,能详细点吗,就是界面是由数据库的数据生成的xsl文件动态生成出来的。  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: