<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/
아주 유익한 내용이네요!