다음 방법을 통해 자바에서 XML 파일을 읽는 방법을 보여줄 예제입니다 DOM XML 파서가 . DOM 인터페이스를 이해하고 사용하기 쉬운 XML 파서입니다. 그것은 쉬운 탐색이나 조작을위한 객체로 모델링, 전체 XML 문서를 메모리에 그 파일을로드를 구문 분석합니다.
참고
DOM 파서는 천천히하고 데이터가 많이 들어있는 XML 문서를로드하는 경우 많은 메모리를 소모합니다. 그것을 솔루션으로 SAX 파서를 고려하십시오, SAX가 DOM보다 빠르고 적은 메모리를 사용하는 것입니다.
DOM 파서는 천천히하고 데이터가 많이 들어있는 XML 문서를로드하는 경우 많은 메모리를 소모합니다. 그것을 솔루션으로 SAX 파서를 고려하십시오, SAX가 DOM보다 빠르고 적은 메모리를 사용하는 것입니다.
1. DOM 파서의 예
DOM XML 파서는 XML 파일을 읽고 아래의 각 요소에게 하나씩 출력하면된다.
File : file.xml
<?xml version="1.0"?> <company> <staff> <firstname>yong</firstname> <lastname>mook kim</lastname> <nickname>mkyong</nickname> <salary>100000</salary> </staff> <staff> <firstname>low</firstname> <lastname>yin fong</lastname> <nickname>fong fong</nickname> <salary>200000</salary> </staff> </company>
File : ReadXMLFile.java – A Java class to read above XML file.import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; import org.w3c.dom.Document; import org.w3c.dom.NodeList; import org.w3c.dom.Node; import org.w3c.dom.Element; import java.io.File; public class ReadXMLFile { public static void main(String argv[]) { try { File fXmlFile = new File("c:\\file.xml"); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(fXmlFile); doc.getDocumentElement().normalize(); System.out.println("Root element :" + doc.getDocumentElement().getNodeName()); NodeList nList = doc.getElementsByTagName("staff"); System.out.println("-----------------------"); for (int temp = 0; temp < nList.getLength(); temp++) { Node nNode = nList.item(temp); if (nNode.getNodeType() == Node.ELEMENT_NODE) { Element eElement = (Element) nNode; System.out.println("First Name : " + getTagValue("firstname", eElement)); System.out.println("Last Name : " + getTagValue("lastname", eElement)); System.out.println("Nick Name : " + getTagValue("nickname", eElement)); System.out.println("Salary : " + getTagValue("salary", eElement)); } } } catch (Exception e) { e.printStackTrace(); } } private static String getTagValue(String sTag, Element eElement) { NodeList nlList = eElement.getElementsByTagName(sTag).item(0).getChildNodes(); Node nValue = (Node) nlList.item(0); return nValue.getNodeValue(); } }2. Result
Root element :company ----------------------- First Name : yong Last Name : mook kim Nick Name : mkyong Salary : 100000 First Name : low Last Name : yin fong Nick Name : fong fong Salary : 200000
자료감사합니다. 질문이 있습니다! xml파일 파싱하여 데이터를 출력하는 것까지는 잘되는데 태그값 사이에 값이 없어서 java.lang.nullpointerexception 오류가 발생합니다ㅠㅠ null값 찾아내서 출력하는 방법은 어떻게 하나요?
답글삭제음 자세한 상황은 모르겠지만...보통 조건문에 널이 아닌것만 해서 출력하면 되지않을까요?
삭제자료 감사합니다. 게시자님 덕분에 많이 배워 가고 있는 학생입니다!!!!
답글삭제저도 질문이 있는데, 코드에 쓰인 개개의 api함수를 잘 모르는 상황이라서요,,, 어느 사이트가 도움이 될까요?
https://developer.android.com에서 정보를 찾긴 하는데, 검색요령이 없어서 애를 먹고 있습니다...ㅠㅠ
감사합니다^^ 굉장히 예전에 포스팅한자료인데 도움이 아직 된다니 다행이네요 ㅎㅎ
삭제메뉴얼사이트를 통으로 보는건 비현실적이구요 ㅜ 모르는게 나올때마다 함수명을 키워드로 해서 검색하는게 제일 효율적입니다 영어로 나오는게 부담스럽다면 구글검색옵션을 한국어로 놓고 검색해보시는것도 좋은방법입니다
검색하는것도 개인의 실력이기때문에 검색도 많이해보시면 많이 늘거에요 꾸준히 하시다보면 자연스럽게 잘될거에요 😅
감사합니다.
삭제