참조자료 :
http://blog.bagesoft.com/727
http://www.rudaks.co.kr/bbs/view.jsp?seq=1939&bbs=java
Why?
회사 프로젝트를 하면서 환경설정이 가독성이 안좋을꺼같다구해서 XML로 환경파일을 작성하게되었다.
XML파일은 스프링 ApplicationContext 단위에서 처음에 한번 로딩후에 사용하기로 했다.
박정민
25
MONO-SYS
경기도 용인
GAME
박혜인
27
글과사람들
경기도 광주
SING
package data.xml;
public class Row {
private String name;
private int age;
private String company;
private String address;
private String hobby;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getCompany() {
return company;
}
public void setCompany(String company) {
this.company = company;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getHobby() {
return hobby;
}
public void setHobby(String hobby) {
this.hobby = hobby;
}
@Override
public String toString() {
return "Row [address=" + address + ", age=" + age + ", company="
+ company + ", hobby=" + hobby + ", name=" + name + "]";
}
}
package data.xml;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;
import java.util.LinkedList;
import java.util.List;
public class XMLParserWithDom {
public static List parse(File file) throws Exception {
List _result = new LinkedList();
DocumentBuilder _docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document _doc = _docBuilder.parse(file);
NodeList _Rowlist = _doc.getDocumentElement().getElementsByTagName("VALUE");
for (int i = 0; i < _Rowlist.getLength(); i++) {
Node _Row = _Rowlist.item(i);
Row _r = new Row();
if (_Row.getNodeType() == Node.ELEMENT_NODE) {
NodeList _child = _Row.getChildNodes();
for (int j = 0; j < _child.getLength(); j++) {
Node _ele = _child.item(j);
if (_ele.getNodeType() == Node.ELEMENT_NODE) {
String _name = _ele.getNodeName();
String _content = _ele.getTextContent();
if (_name.equalsIgnoreCase("NAME")) {
_r.setName(_content);
} else if (_name.equalsIgnoreCase("AGE")) {
_r.setAge(Integer.parseInt(_content));
} else if (_name.equalsIgnoreCase("COMPANY")) {
_r.setCompany(_content);
} else if (_name.equalsIgnoreCase("ADDRESS")) {
_r.setAddress(_content);
} else if (_name.equalsIgnoreCase("HOBBY")) {
_r.setHobby(_content);
} else {
throw new SAXException("Unexpacted Element: "+ _name);
}
}
}
}
_result.add(_r);
}
return _result;
}
public static void main(String[] args) throws Exception {
System.out.println(parse(new File("srcdataxmltest.xml")));
}
}

18 Replies to “[Sample Code] XML Dom Pasing”