레이블이 xml인 게시물을 표시합니다. 모든 게시물 표시
레이블이 xml인 게시물을 표시합니다. 모든 게시물 표시

2015년 8월 5일 수요일

XML parsing with JAVA

XML을 JAVA에서 Parsing 하다.....
일단 xml은..
<code-define>
    <red>
        <code>1100</code>
        <code>1100</code>
        <code>1100</code>
    </red>
    <green>
        <code>1100</code>
        <code>1100</code>
        <code>1100</code>
    </green>
</code-define>
코드값을 자바의 배열로 넣고자 합니다.

// w3c 의 DOM을 사용합니다.
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

// 일단 값을 넣을 배열을 선언하고
List<String> redCodesFromXML = new ArrayList<String>();
List<String> greenCodesFromXML = new ArrayList<String>();

// DOM 문서를 준비합니다.
DocumentBuilderFactory docBF = DocumentBuilderFactory.newInstance();

// xml parsing 을 준비합니다.
DocumentBuilder docB = docBF.newDocumentBuilder();

// 이제 xml 받을 준비
String fileLocation = "C:/test.xml";Document xmlDoc = null;

// parsing
xmlDoc = docB.parse(fileLocation);

// 최 상위 태그를 엘레멘트로 불러옵니다. 태그이름은 code-define 이 됩니다.
Element root = xmlDoc.getDocumentElement();

// red를 엘레멘트 형식으로 가져옵니다. red 태그가 하나밖에 없다고 뒤에 item(0) 이거 무시하면 에러 납니다.
Element red = (Element) root.getElementsByTagName("red").item(0);

// 이제 code를 노드 리스트로 가져옵니다.
NodeList codeValueForRed = red.getElementsByTagName("code");


// for 문으로 리스트 배열에 넣습니다.
for(int i=0; i < redCodesFromXML; i++){
   redCodesFromXML.add(codeValueForRed.item(i).getTextContent());
}


// 이걸 String-array로 바꾸고 싶다면
String [] redStringArray = redCodesFromXML.toArray(new String[redCodesFromXML.size()]);





이상입니다.