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