Java는dom 방식을 이용하여 xml 상세 및 실례 코드를 읽고 만듭니다

5909 단어 Javadom읽기xml
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:
 
 

읽어주셔서 감사합니다. 여러분에게 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!

좋은 웹페이지 즐겨찾기