본문 바로가기
Java

[Java] 표준국어대사전 오픈 API 사용하기 - 2(파싱)

by 알래스카비버 2021. 4. 22.
반응형

howbeautifulworld.tistory.com/19

 

[Java] 표준국어대사전 오픈 API 사용하기 - 1

stdict.korean.go.kr/openapi/openApiInfo.do 국립국어원 표준국어대사전 오픈 API 1. 표준국어대사전 오픈 API 서비스 소개 표준국어대사전 오픈 API는 검색 플랫폼을 외부에 공개하여 다양하고 재미있는 서비

howbeautifulworld.tistory.com

1편에서는 API를 호출해봤습니다.

2편에서는 파싱을 할 것입니다.

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class apitest2 {
	public static void main(String[] args) {
		try {
			String key = "";
			String word = "글썽이다";
			String url = "https://stdict.korean.go.kr/api/search.do?key=" + key + "&type_search=search&q=" + word;

			DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
			DocumentBuilder db = dbf.newDocumentBuilder();
			Document doc = db.parse(url);

			NodeList nl = doc.getElementsByTagName("item");

			for (int i = 0; i < nl.getLength(); i++) {
				Node node = nl.item(i);
				if (node.getNodeType() == Node.ELEMENT_NODE) {
					Element element = (Element) node;
					System.out.println("target_code : " + getValue("target_code", element));
					System.out.println("word : " + getValue("word", element));
					System.out.println("pos : " + getValue("pos", element));
					System.out.println("definition : " + getValue("definition", element));
					System.out.println("link : " + getValue("link", element));
					System.out.println();
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static String getValue(String tag, Element element) {
		NodeList nl = element.getElementsByTagName(tag).item(0).getChildNodes();
		Node value = (Node) nl.item(0);
		return value.getNodeValue();
	}
}

코드입니다.

태그에 원하는 태그를 넣으면 됩니다.

결과

결과입니다.

반응형

댓글