노드 추가와 관련된 Document 객체의 메소드
Document.createElement(String TagName)
문서의 “요소”를 작성 한다.
Document.createTextNode(String data)
문서의 “텍스트”를 작성
한다.
Document.createCommand(String data)
문서의 “주석”를 작성 한다.
Document.createCDATASection(String data)
문서의 “CDATA 섹션”를 작성 한다.
Document.createProcessingInstruction(String data)
문서의 “처리 명령”을 작성
한다.
Document.createAttribute(String attr)
문서의 “속성”를 작성 한다.
Document.createEntityReference(String name)
문서의 “엔티티 참조”를 작성 한다.
Element 객체에 속성을 추가하기 위한 메소드
Element.setAttribute(String name, Stirng
value)
텍스트를 작성 하려면
Document.createTextNode()를 이용하여 TextNode를 생성
Node.appendChild()를 이용하여 해당 노드에 추가한다.
TextNode 추가 예 – car
요소에 추가
if (ch.getNodeType() == Node.ELEMENT_NODE) {
if
(ch.getNodeName().equals(“car”)) {
Document doc = ch.getOwnerDocument();
Text text = doc.createTextNode(“차 데이터…”);
ch.appendChild(text);
}
}
car4.xml
<?xml
version="1.0" encoding="euc-kr" ?>
<cars>
<car>
<name>승용차</name>
<price>150</price>
</car>
<car>
<name>트럭</name>
<price>500</price>
</car>
</cars>
AttrInsert.java
import java.io.*;
import
javax.xml.parsers.*;
import org.w3c.dom.*;
import
org.apache.crimson.tree.*;
class AttrInsert {
public static void
main(String[] args) throws Exception{
//DOM을 준비 한다.
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
//문서를 읽어 들인다.
Document doc = db.parse(new FileInputStream("car4.xml"));
//문서의 출발점을 얻음
Element root = doc.getDocumentElement();
//노드를 탐색 하자.
walk(root);
//문서를 써 낸다.
XmlDocument xdoc = (XmlDocument) doc;
BufferedWriter bw
= new BufferedWriter(new FileWriter("result4.xml"));
xdoc.write(bw,
"euc-kr");
bw.close();
System.out.println("속성 추가 OK~");
}
//****************** 노드를 탐색 한다.
public static void walk(Node n) {
//지정된 노드의 최초의 자식 노드로 부터, 자식이 있는 동안
// 반복적으로 노드를 탐색 함
for(Node ch =
n.getFirstChild();ch != null; ch = ch.getNextSibling()) {
if
(ch.getNodeType() == Node.ELEMENT_NODE) {
if
(ch.getNodeName().equals("car")) {
Element elm = (Element) ch;
elm.setAttribute("company", "현대자동차");
}
walk(ch);
}
}
}
}
실행 결과 – result4.xml
<?xml version="1.0"
encoding="euc-kr"?>
<cars>
<car company="현대자동차">
<name>승용차</name>
<price>150</price>
</car>
<car company="현대자동차">
<name>트럭</name>
<price>500</price>
</car>
</cars>
이상 DOM에 대해 알아 보았습니다... 유용하게
이용바랍니다.
감사합니다...
댓글 없음:
댓글 쓰기