[IntelliJ] API xml 가져오기

Yuni·2023년 7월 18일
0

IntelliJ

목록 보기
6/8
post-thumbnail
<channel version="1.0" xmlns="주소">
	<id>1</id>
    <name>Camera</name>
    <source>
    	<proxy>HHH</proxy>
    	<address>adress</address>
    	<ip>112.1312.3232.11</ip>
        <portNo>8080</portNo>
        <userName>name</userName>
        <type>auto</type>
        <deviceID>1313</deviceID>
    </source>
</channel>

이러한 구조가 있는 api xml의 id를 받으려고 한다

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

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

public String serchName() {
	String idXMl = null;
    
    try {
    	String is = "주소";
            
        // xml 파싱
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder documentBuilder = factory.newDocumentBuilder();
        Document document = documentBuilder.parse(is);
        document.getDocumentElement().normalize();
            
        NodeList nList = document.getElementsByTagName("channel");
        
        for (int temp = 0; temp < nList.getLength(); temp++) {
        	Node nNode = nList.item(temp);
            
            if (nNode.getNodeType() == Node.ELEMENT_NODE) {
            	Element eElement = (Element) nNode;
                idXMl = eElement.getElementsByTagName("id").item(0).getTextContent();
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return idXMl;
    }

이런식으로 작성해주면 xml에 있는 id 값을 가져올수있다

다른 값들도 구조와 상관없이 id와 동일하게

eElement.getElementsByTagName("userName").item(0).getTextContent();

이런식으로 가져오면된다

생각보다 쉬운데 JSON밖에 안해봐서.. 초반에 이해하는데 조금 복잡했다
이해하고 나니 xml도 쉽다!!

참고
https://m.blog.naver.com/qbxlvnf11/221324667993
https://www.delftstack.com/ko/howto/java/java-read-xml/

profile
backend developers

2개의 댓글

comment-user-thumbnail
2023년 7월 18일

아주 유익한 내용이네요!

답글 달기
comment-user-thumbnail
2023년 7월 18일

정말 유익한 글이었습니다.

답글 달기