首页 / XML / java DOM 操作xml
java DOM 操作xml
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java DOM 操作xml,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5083字,纯文字阅读大概需要8分钟。
内容图文
![java DOM 操作xml](/upload/InfoBanner/zyjiaocheng/1133/4ed23c11f09743d3831da1ab8d6a2213.jpg)
1 代码如下:
1 package dom.pasing; 2 3 import java.io.IOException; 4 import java.io.StringWriter; 5 6 import javax.xml.parsers.DocumentBuilder; 7 import javax.xml.parsers.DocumentBuilderFactory; 8 import javax.xml.parsers.ParserConfigurationException; 9 10 11 import javax.xml.transform.OutputKeys; 12 import javax.xml.transform.Transformer; 13 import javax.xml.transform.TransformerException; 14 import javax.xml.transform.TransformerFactory; 15 import javax.xml.transform.dom.DOMSource; 16 import javax.xml.transform.stream.StreamResult; 17 18 import org.apache.xml.serialize.OutputFormat; 19 import org.apache.xml.serialize.XMLSerializer; 20 import org.w3c.dom.Attr; 21 import org.w3c.dom.Document; 22 import org.w3c.dom.Element; 23 import org.w3c.dom.Node; 24 import org.w3c.dom.NodeList; 25 import org.w3c.dom.Text; 26 27 public class DOMTest { 28 29 /** 30 * 31 * @return 32 */ 33 public static Document createDocument() { 34 35 Document document = null; 36 37try { 38 DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); 39 DocumentBuilder builder = builderFactory.newDocumentBuilder(); 40 document = builder.newDocument(); 41 Element root = document.createElement("students"); 42 document.appendChild(root); 43 44/** 45 * <students> 46 * <student sn="01"> 47 * <name>张三</name> 48 * <age>19</age> 49 * </student> 50 * </students> 51*/ 52 Element stuEle = document.createElement("student"); 53 54 Attr attr = document.createAttribute("sn"); 55 attr.setValue("01"); 56 stuEle.setAttributeNode(attr); 57 58 Element nameElem = document.createElement("name"); 59 Text txtName = document.createTextNode("张三"); 60 nameElem.appendChild(txtName); 61 stuEle.appendChild(nameElem); 62 63 Element ageElem = document.createElement("age"); 64 Text txtAge = document.createTextNode("19"); 65 ageElem.appendChild(txtAge); 66 stuEle.appendChild(ageElem); 67 document.getDocumentElement().appendChild(stuEle); //在文档根元素节点studnets下,添加一个student元素节点 68 69/** 70 * 创建节点 71 * <student> 72 * <name>李四</name> 73 * <age>24</age> 74 * </student> 75*/ 76 Element stuEle2 = document.createElement("student"); 77 78 Attr attr2 = document.createAttribute("sn"); 79 attr2.setValue("02"); 80 stuEle2.setAttributeNode(attr2); 81 82 Element nameEle2 = document.createElement("name"); 83 Text txtName2 = document.createTextNode("李四"); 84 nameEle2.appendChild(txtName2); 85 stuEle2.appendChild(nameEle2); 86 87 Element ageEle2 = document.createElement("age"); 88 Text txtAge2 = document.createTextNode("24"); 89 ageEle2.appendChild(txtAge2); 90 stuEle2.appendChild(ageEle2); 91 document.getDocumentElement().appendChild(stuEle2); //在文档根元素节点studnets下,添加一个student元素节点 92 } catch (ParserConfigurationException e) { 93 e.printStackTrace(); 94 } 95 96return document; 97 } 98 99publicstaticvoid alterDocument(Document document) { 100 NodeList nodeList = document.getElementsByTagName("student"); 101 Node node = nodeList.item(0); 102 node.getParentNode().removeChild(node); //移除第1个student元素节点103 } 104105106107/**108 * 转换DOM为String 109 * @param document 110 * @return111 * @throws TransformerException 112*/113publicstatic String documentToStr(Document document) { 114115 String result = null; 116117try { 118 DOMSource source = new DOMSource(document); 119 StringWriter stringWriter = new StringWriter(); 120 StreamResult streamResult = new StreamResult(stringWriter); 121122 TransformerFactory transformerFactory = TransformerFactory.newInstance(); 123 Transformer transformer = transformerFactory.newTransformer(); 124 transformer.setOutputProperty(OutputKeys.INDENT, "yes"); //默认的缩进量长度为0125 transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8"); 126 transformer.transform(source, streamResult); 127128 result = stringWriter.toString(); 129 } catch (TransformerException e) { 130 e.printStackTrace(); 131 } 132return result; 133 } 134135/**136 * 137 * @param document 138 * @return139*/140publicstatic String documentToIndentStr(Document document) { 141142 String result = null; 143144try { 145146 StringWriter stringWriter = new StringWriter(); 147148 OutputFormat format = new OutputFormat(document); 149 format.setLineWidth(100); 150 format.setIndenting(true); 151 format.setIndent(4); 152153 XMLSerializer serializer = new XMLSerializer(stringWriter, format); 154 serializer.serialize(document); 155156 result = stringWriter.toString(); 157 } catch (IOException e) { 158// TODO Auto-generated catch block159 e.printStackTrace(); 160 } 161return result; 162 } 163164publicstaticvoid main(String[] args) { 165166 String rslt = null; 167168 Document document = createDocument(); 169170 rslt = documentToIndentStr(document); 171172 System.out.println(rslt); 173 } 174 }
输出结果:
<?xml version="1.0" encoding="UTF-8"?>
<students>
<student sn="01">
<name>张三</name>
<age>19</age>
</student>
<student sn="02">
<name>李四</name>
<age>24</age>
</student>
</students>
原文:http://www.cnblogs.com/asnjudy/p/4572628.html
内容总结
以上是互联网集市为您收集整理的java DOM 操作xml全部内容,希望文章能够帮你解决java DOM 操作xml所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。