首页 > 开发 > Java > 正文

Java 利用dom方式读取、创建xml详解及实例代码

2024-07-13 10:05:31
字体:
来源:转载
供稿:网友

javascript/43980.html">Java 利用dom方式读取、创建xml详解

1.创建一个接口

XmlInterface.Java

public interface XmlInterface {   /**   * 建立XML文档   * @param fileName 文件全路径名称   */  public void createXml(String fileName);   /**   * 解析XML文档   * @param fileName 文件全路径名称   */  public void parserXml(String fileName); }

接口实现

XmlImpl.java

package com.test.xml; import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.PrintWriter;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import javax.xml.transform.OutputKeys;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerConfigurationException;import javax.xml.transform.TransformerException;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import org.xml.sax.SAXException; public class XmlImpl implements XmlInterface{ private Document document;  public void init() {  try {   DocumentBuilderFactory factory = DocumentBuilderFactory     .newInstance();   DocumentBuilder builder = factory.newDocumentBuilder();   this.document = builder.newDocument();  } catch (ParserConfigurationException e) {   System.out.println(e.getMessage());  } }  public void createXml(String fileName) {  Element root = this.document.createElement("scores");   this.document.appendChild(root);   Element employee = this.document.createElement("employee");   Element name = this.document.createElement("name");   name.appendChild(this.document.createTextNode("wangchenyang"));   employee.appendChild(name);   Element sex = this.document.createElement("sex");   sex.appendChild(this.document.createTextNode("m"));   employee.appendChild(sex);   Element age = this.document.createElement("age");   age.appendChild(this.document.createTextNode("26"));   employee.appendChild(age);   root.appendChild(employee);   TransformerFactory tf = TransformerFactory.newInstance();  try {   Transformer transformer = tf.newTransformer();   DOMSource source = new DOMSource(document);   transformer.setOutputProperty(OutputKeys.ENCODING, "gb2312");   transformer.setOutputProperty(OutputKeys.INDENT, "yes");   PrintWriter pw = new PrintWriter(new FileOutputStream(fileName));   StreamResult result = new StreamResult(pw);   transformer.transform(source, result);   System.out.println("生成XML文件成功!");  } catch (TransformerConfigurationException e) {   System.out.println(e.getMessage());  } catch (IllegalArgumentException e) {   System.out.println(e.getMessage());  } catch (FileNotFoundException e) {   System.out.println(e.getMessage());  } catch (TransformerException e) {   System.out.println(e.getMessage());  } }  public void parserXml(String fileName) {  try {   DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();   DocumentBuilder db = dbf.newDocumentBuilder();   Document document = db.parse(fileName);       NodeList employees = document.getChildNodes();   for (int i = 0; i < employees.getLength(); i++) {    Node employee = employees.item(i);    NodeList employeeInfo = employee.getChildNodes();    for (int j = 0; j < employeeInfo.getLength(); j++) {     Node node = employeeInfo.item(j);     NodeList employeeMeta = node.getChildNodes();     for (int k = 0; k < employeeMeta.getLength(); k++) {      System.out.println(employeeMeta.item(k).getNodeName()        + ":" + employeeMeta.item(k).getTextContent());     }    }   }   System.out.println("解析完毕");  } catch (FileNotFoundException e) {   System.out.println(e.getMessage());  } catch (ParserConfigurationException e) {   System.out.println(e.getMessage());  } catch (SAXException e) {   System.out.println(e.getMessage());  } catch (IOException e) {   System.out.println(e.getMessage());  } }}

测试

public class Main {  public static void main(String args[]){  XmlImpl dd=new XmlImpl();  String str="D:/grade.xml";  dd.init();  dd.createXml(str); //创建xml  dd.parserXml(str); //读取xml }}

结果

生成xml

<?xml version="1.0" encoding="GB2312"?><scores><employee><name>wangchenyang</name><sex>m</sex><age>26</age></employee></scores>

读取xml

生成XML文件成功!#text: name:wangchenyang#text: sex:m#text: age:26#text: 解析完毕

感谢阅读,希望能帮到大家,谢谢大家对本站的支持!


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表