日期:2014-05-17  浏览次数:20825 次

java 使用xsl 将xml 转换为 html

原文:http://www.rgagnon.com/javadetails/java-0407.html

howto.xml

<?xml version="1.0"?>
<howto>
  <topic>
      <title>Java</title>
      <url>http://www.rgagnon/javahowto.htm</url>
  </topic>
    <topic>
      <title>PowerBuilder</title>
      <url>http://www.rgagnon/pbhowto.htm</url>
  </topic>
      <topic>
        <title>Javascript</title>
        <url>http://www.rgagnon/jshowto.htm</url>
  </topic>
      <topic>
        <title>VBScript</title>
        <url>http://www.rgagnon/vbshowto.htm</url>
  </topic>
</howto>

?howto.xsl

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="/">
<html>
<head><title>Real's HowTo</title></head>
<body>
<table border="1">
<tr>
<th>Title</th>
<th>URL</th>
</tr>
<xsl:for-each select="howto/topic">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="url"/></td>
</tr>
</xsl:for-each>
</table>
</body></html>
</xsl:template>
</xsl:stylesheet>

?

java

import javax.xml.transform.*;
import java.net.*;
import java.io.*;

public class HowToXSLT {
public static void main(String[] args) {
  try {

    TransformerFactory tFactory = TransformerFactory.newInstance();

    Transformer transformer =
      tFactory.newTransformer
         (new javax.xml.transform.stream.StreamSource
            ("howto.xsl"));

    transformer.transform
      (new javax.xml.transform.stream.StreamSource
            ("howto.xml"),
       new javax.xml.transform.stream.StreamResult
            ( new FileOutputStream("howto.html")));
    }
  catch (Exception e) {
    e.printStackTrace( );
    }
  }
}

?

?

?

?

1 楼 vipqweer 2012-02-28  
楼主,当xml里面是
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v0.4 20110131//EN" "http://jats.nlm.nih.gov/publishing/0.4/JATS-journalpublishing0.dtd">
<article xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article" dtd-version="0.4" xml:lang="en">

时候,程序报错
'com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: jats.nlm.nih.gov'

麻烦问下楼主有什么解决办法吗?
2 楼 zk1878 2012-02-29  
vipqweer 写道
楼主,当xml里面是
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v0.4 20110131//EN" "http://jats.nlm.nih.gov/publishing/0.4/JATS-journalpublishing0.dtd">
<article xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article" dtd-version="0.4" xml:lang="en">

时候,程序报错
'com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: jats.nlm.nih.gov'

麻烦问下楼主有什么解决办法吗?

嘿嘿,这个我还没碰到过,现在告诉你个偷懒简单的方法,把xml的下面的那一段去掉不就ok了
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v0.4 20110131//EN" "http://