KOTLIN · 파일/IO
XML 파싱
Java의 XML 라이브러리를 Kotlin에서 활용하여 XML 문서를 파싱하고 생성합니다.
파일/IO중급xmldomparsingjava-interop
핵심 설명
Java의 XML 라이브러리를 Kotlin에서 활용하여 XML 문서를 파싱하고 생성합니다.
Kotlin code
import javax.xml.parsers.DocumentBuilderFactory
import org.xml.sax.InputSource
import java.io.StringReader
fun main() {
val xml = """
<users>
<user id="1">
<name>김철수</name>
<email>kim@test.com</email>
</user>
<user id="2">
<name>이영희</name>
<email>lee@test.com</email>
</user>
</users>
""".trimIndent()
// DOM 파싱
val factory = DocumentBuilderFactory.newInstance()
val builder = factory.newDocumentBuilder()
val doc = builder.parse(InputSource(StringReader(xml)))
val users = doc.getElementsByTagName("user")
for (i in 0 until users.length) {
val node = users.item(i)
val id = node.attributes.getNamedItem("id").textContent
val name = (node as org.w3c.dom.Element)
.getElementsByTagName("name").item(0).textContent
val email = node
.getElementsByTagName("email").item(0).textContent
println("[$id] $name ($email)")
}
}학습 팁
간단한 XML에는 DOM이 적합하지만, 대용량 XML에는 SAX나 StAX 파서를 사용하면 메모리 효율적입니다.
주의할 점
XML 파싱 시 외부 엔티티(XXE) 공격에 취약할 수 있습니다. factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true)로 방지하세요.
자주 묻는 질문
XML 파싱란 무엇인가요?
Java의 XML 라이브러리를 Kotlin에서 활용하여 XML 문서를 파싱하고 생성합니다.
XML 파싱 학습 시 주의할 점은 무엇인가요?
XML 파싱 시 외부 엔티티(XXE) 공격에 취약할 수 있습니다. factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true) 로 방지하세요.
Continue Learning
Kotlin 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.