java document 创建_Java Document生成和解析XML(DOMHelper.createDocument()方法过期了)

1 package com.demo.utils;2

3 import java.io.File;4

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

16 import org.w3c.dom.Document;17 import org.w3c.dom.Element;18

19 /**20 * Document生成XML21 *22 * @author23 *24 */

25 public classCreateDocument {26

27 public static voidmain(String[] args) {28 //执行Document生成XML方法

29 createDocument(new File("E:\\person.xml"));30 }31

32 public static voidcreateDocument(File file) {33 try{34 //第一步:初始化一个XML解析工厂。

35 DocumentBuilderFactory factory =DocumentBuilderFactory.newInstance();36

37 //第二步:创建一个DocumentBuilder实例。

38 DocumentBuilder builder =factory.newDocumentBuilder();39

40 //第三步:构建一个Document实例。

41 Document doc =builder.newDocument();42 //standalone用来表示该文件是否呼叫其它外部的文件。若值是 "yes"表示没有呼叫外部文件

43 doc.setXmlStandalone(true);44

45 //第四步:创建一个根节点,名称为root,并设置一些基本属性。46 //创建一个根节点47 //说明: doc.createElement("元素名")、48 //element.setAttribute("属性名","属性值")、设置节点属性49 //element.setTextContent("标签间的内容"),设置标签之间的内容

50 Element element = doc.createElement("root");51 element.setAttribute("attr", "root");52

53 //创建根节点第一个子节点

54 Element elementChildOne = doc.createElement("userInfo");55 elementChildOne.setAttribute("attr", "userInfo1");56 element.appendChild(elementChildOne);57

58 //第一个子节点的第一个子节点

59 Element childOneOne = doc.createElement("zhangsansan");60 childOneOne.setAttribute("attr", "userInfo1");61 childOneOne.setTextContent("attr zhangsansan");62 elementChildOne.appendChild(childOneOne);63

64 //第一个子节点的第二个子节点

65 Element childOneTwo = doc.createElement("lisisi");66 childOneTwo.setAttribute("attr", "userInfo1");67 childOneTwo.setTextContent("attr lisisi");68 elementChildOne.appendChild(childOneTwo);69

70 //创建根节点第二个子节点

71 Element elementChildTwo = doc.createElement("userInfo");72 elementChildTwo.setAttribute("attr", "userInfo2");73 element.appendChild(elementChildTwo);74

75 //第二个子节点的第一个子节点

76 Element childTwoOne = doc.createElement("lisisi");77 childTwoOne.setAttribute("attr", "userInfo2");78 childTwoOne.setTextContent("attr lisisi");79 elementChildTwo.appendChild(childTwoOne);80

81 //第二个子节点的第二个子节点

82 Element childTwoTwo = doc.createElement("wangwuwu");83 childTwoTwo.setAttribute("attr", "userInfo2");84 childTwoTwo.setTextContent("attr wangwuwu");85 elementChildTwo.appendChild(childTwoTwo);86

87 //第五步:把节点添加到Document中,再创建一些子节点加入,添加根节点

88 doc.appendChild(element);89

90 //第六步:把构造的XML结构,写入到具体的文件中91 //把构造的XML结构,写入到具体的文件中

92 TransformerFactory formerFactory =TransformerFactory.newInstance();93 Transformer transformer =formerFactory.newTransformer();94 //换行

95 transformer.setOutputProperty(OutputKeys.INDENT, "YES");96 //文档字符编码

97 transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8");98

99 //可随意指定文件的后缀,效果一样,但xml比较好解析,比如: E:\\person.txt等

100 transformer.transform(new DOMSource(doc), newStreamResult(file));101

102 System.out.println("XML CreateDocument success!");103 } catch(ParserConfigurationException e) {104 e.printStackTrace();105 } catch(TransformerConfigurationException e) {106 e.printStackTrace();107 } catch(TransformerException e) {108 e.printStackTrace();109 }110 }111

112 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值