在java代码中用xslt处理xml文件详解编程语言

java处理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(); 
} 
} 
}

 

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/16500.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论