在java代码中,用xslt处理xml文件
2008-07-16 16:46
513 查看
用java处理xml文件的方法很多,很多人觉得用起来有点复杂.所以这里提供一个在java代码中引用xslt文件处理xml文件的方法.
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.net.URL; import java.net.URLDecoder; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.stream.StreamSource; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io.DocumentResult; import org.dom4j.io.DocumentSource; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; public class Jom4jForXmltoXslt { /** * 利用xslt文件转换xml * @author Administrator * @parame document,styleSheet */ public static Document transformDocument(Document document,File styleSheet) throws TransformerException { TransformerFactory factory = TransformerFactory.newInstance(); Transformer transformer = factory.newTransformer(new StreamSource(styleSheet)); DocumentSource source = new DocumentSource(document); DocumentResult result = new DocumentResult(); transformer.transform(source, result); Document transformedDoc = result.getDocument(); return transformedDoc; } /** * 读取需要转换的xml文件 * @return Document * @throws UnsupportedEncodingException * @throws FileNotFoundException */ public Document getRoleXML() throws UnsupportedEncodingException, FileNotFoundException { InputStream is=null; URL url=this.getClass().getClassLoader().getResource("resources.xml"); if(url==null) return null; String path = url.getFile(); path = URLDecoder.decode(path,"UTF-8"); is = new FileInputStream(new File(path)); System.out.println("读到的menuConfig.xml位置在:"+path); SAXReader reader = new SAXReader(); try { return reader.read(is); } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } } public static void main(String args[]) throws IOException { try { Document doc = new Jom4jForXmltoXslt().getRoleXML(); Document resultDoc = Jom4jForXmltoXslt.transformDocument(doc, new File("transfer-menu-before.xslt")); OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("GBK"); XMLWriter writer = new XMLWriter(new FileWriter(new File("output.xml")),format); writer.write(resultDoc); writer.close(); System.out.println("用xslt转换xml文件成功!"); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (TransformerException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
相关文章推荐
- 在java代码中,用xslt处理xml文件
- java代码里获取xml文件里的数据库配置信息
- Java如何从XML文件中获取节点信息的代码解析 Document方法
- java-web 之 第三讲 xml 文件之 XSLT
- android 横屏竖屏设置的详解(最好不要用Java代码实现,用xml配置文件吧)
- javaWEB项目中使用XSLT解析生成的XML文件
- Mybatis的xml文件执行sql返回多个值,java代码接收到一个值问题
- Android:layout_gravity与gravity的设置与区别(java代码&xml布局文件)
- java处理国际化和读取properties文件代码片段
- JAVA代码-使用DOM4J解析复杂XML文件
- 在java代码中,用xslt处理xml文件
- 分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要)
- JAVA技术:XML配置文件的读取处理
- java 处理xml文件
- JAVA技术:XML配置文件的读取处理
- java代码和spring框架读取xml和properties文件
- 做国际项目时候,处理翻译的国际化资源文件的java代码
- 利用正则表达式获取特定文件(如java class)并对其进行处理(如代码统计)
- 分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要)