java xml 编程_Java-XML

1 importjava.io.File;2 importjava.io.StringWriter;3

4 importjavax.xml.parsers.DocumentBuilder;5 importjavax.xml.parsers.DocumentBuilderFactory;6 importjavax.xml.parsers.ParserConfigurationException;7 importjavax.xml.transform.OutputKeys;8 importjavax.xml.transform.Transformer;9 importjavax.xml.transform.TransformerConfigurationException;10 importjavax.xml.transform.TransformerException;11 importjavax.xml.transform.TransformerFactory;12 importjavax.xml.transform.TransformerFactoryConfigurationError;13 importjavax.xml.transform.dom.DOMSource;14 importjavax.xml.transform.stream.StreamResult;15

16 importorg.w3c.dom.DOMException;17 importorg.w3c.dom.Document;18

19 public classCreateConfigXmlUtil {20

21 publicDocument getDocument() {22 //创建一个Document对象,该对象代表一个XML文件

23 Document document = null;;24 try{25 //获取DOM 解析器的工厂实例

26 DocumentBuilderFactory factory =DocumentBuilderFactory.newInstance();27 //从 DOM 工厂获得 DOM 解析器

28 DocumentBuilder builder =factory.newDocumentBuilder();29 document =builder.newDocument();30 //设置XML声明中standalone为yes,即没有dtd和schema作为该XML的说明文档,且不显示该属性

31 document.setXmlStandalone(true);32 } catch(DOMException e) {33 e.printStackTrace();34 } catch(ParserConfigurationException e) {35 e.printStackTrace();36 }37 returndocument;38 }39

40 /**

41 * @Title: xmlToFile42 * @Description: xml输出到文件43 *@paramdocument44 *@paramfilePath45 *@returnvoid 返回类型46 *@throws

47 */

48 public voidxmlToFile(Document document,String filePath) {49 /**

50 * 将DOM树转换为XML文件:51 * 创建TransformerFactory类的对象52 * 通过TransformerFactory创建Transformer对象53 * 使用Transformer对象的transform()方法将DOM树转换为XML文件54 * (该方法有两个参数,第一个参数为源数据,需要创建DOMSource对象并将Document加载到其中;55 * 第二个参数为目的文件,即要生成的XML文件,需要创建StreamResult对象并指定目的文件)56 */

57 try{58 //获取TransformerFactory类的一个实例

59 TransformerFactory transformerFactory =TransformerFactory.newInstance();60 //通过TransformerFactory类的一个实例,创建Transformer对象

61 Transformer transformer =transformerFactory.newTransformer();62 //设置输出时的编码

63 transformer.setOutputProperty("encoding", "UTF-8");64 transformer.setOutputProperty(OutputKeys.INDENT, "yes");//设置输出数据时换行65 //将DOM树转换为XML文件66 //第一个参数为源数据,需要创建DOMSource对象并将Document加载到其中67 //第二个参数为目的文件,即要生成的XML文件,需要创建StreamResult对象并指定目的文件68 //"./data/languages.xml"

69 transformer.transform(newDOMSource(document),70 new StreamResult(newFile(filePath)));71 } catch(TransformerConfigurationException e) {72 e.printStackTrace();73 } catch(IllegalArgumentException e) {74 e.printStackTrace();75 } catch(TransformerFactoryConfigurationError e) {76 e.printStackTrace();77 } catch(TransformerException e) {78 e.printStackTrace();79 }80 }81

82 /**

83 * @Title: xmlToConsole84 * @Description: xml输出到控制台85 *@paramdocument86 *@returnvoid 返回类型87 *@throws

88 */

89 public static voidxmlToConsole(Document document) {90 try{91 //获取TransformerFactory类的一个实例

92 TransformerFactory transformerFactory =TransformerFactory.newInstance();93 //通过TransformerFactory类的一个实例,创建Transformer对象

94 Transformer transformer =transformerFactory.newTransformer();95 //设置输出时的编码

96 transformer.setOutputProperty("encoding", "UTF-8");97 transformer.setOutputProperty(OutputKeys.INDENT, "yes");//设置输出数据时换行

98 StringWriter writer = newStringWriter();99 transformer.transform(new DOMSource(document), newStreamResult(writer));100 System.out.println(writer.toString());//将流输出到控制台

101 } catch(TransformerConfigurationException e) {102 e.printStackTrace();103 } catch(IllegalArgumentException e) {104 e.printStackTrace();105 } catch(TransformerFactoryConfigurationError e) {106 e.printStackTrace();107 } catch(TransformerException e) {108 e.printStackTrace();109 }110 }111 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值