반응형
XML 문서
<!--XML 문서 내용 -->
<response>
<header>
<resultCode>00</resultCode>
<resultMsg>NORMAL_CODE</resultMsg>
</header>
<body>
<items>
<item>
<pm25Grade1h>2</pm25Grade1h>
<pm10Value24>55</pm10Value24>
<so2Value>0.002</so2Value>
</item>
<item>
<pm25Grade1h>2</pm25Grade1h>
<pm10Value24>57</pm10Value24>
<so2Value>0.002</so2Value>
</item>
</items>
<numOfRows>10</numOfRows>
<pageNo>1</pageNo>
<totalCount>23</totalCount>
</body>
</response>
- DocumentBuilderFactor : 어플리케이션으로 XML 문서로부터 DOM 객체 트리를 생성하는 파서를 취득할 수 있는 팩토리 API를 정의합니다.
- DocumentBuilder : 현재 설정되어 있는 파라미터를 사용해 새로운 DocumentBuilder 인스턴스를 작성합니다.
이 클래스의 인스턴스를 취득하면, 다양한 입력 소스로부터 XML 문서를 구문 분석 할 수 있습니다. 이러한 입력 소스에는 InputStream, File, URL 및 SAX InputSource가 있습니다. - Document : HTML 문서 또는 XML 문서 전체를 나타냅니다.
XML 파싱 및 태그의 값 가져오기
//XML 요청 url
String url = "http://api.adfafadsfasdfadf";
//XML 파싱
DocumentBuilderFactory dbFactoty = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactoty.newDocumentBuilder();
Document doc = dBuilder.parse(url);
//item이라는 태그의 element들 가져오기
NodeList nList = doc.getElementsByTagName("item");
Node nNode = nList.item(0);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
getTagValue("so2Value", eElement);
}
XML 파싱 및 내용 출력하기
//XML문서 요청 url
String url = "http://api.adfafadsfasdfadf";
//XML 파싱
DocumentBuilderFactory dbFactoty = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactoty.newDocumentBuilder();
Document doc = dBuilder.parse(url);
//XML을 Strig으로 출력
Transformer tf = TransformerFactory.newInstance().newTransformer();
tf.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
tf.setOutputProperty(OutputKeys.INDENT, "yes");
Writer out = new StringWriter();
tf.transform(new DOMSource(doc), new StreamResult(out));
System.out.println(out.toString());
반응형