반응형

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());
반응형

+ Recent posts