JAXB를 사용하여 xml 문자열을 Java 객체로 언마샬링하는 방법
Superhero
클래스가 주어집니다.import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import lombok.Getter;
import lombok.Setter;
@XmlRootElement(name = "super-hero")
@XmlAccessorType(XmlAccessType.FIELD)
@Getter
@Setter
class SuperHero {
@XmlElement(name = "name")
String name;
@XmlElement(name = "super-power")
String superPower;
}
다음 코드를 사용하여 XML 문자열을
SuperHero
인스턴스로 변환할 수 있습니다.import static org.junit.jupiter.api.Assertions.assertEquals;
import java.io.StringReader;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import org.junit.jupiter.api.Test;
import org.junit.platform.runner.JUnitPlatform;
import org.junit.runner.RunWith;
@RunWith(JUnitPlatform.class)
class TestXmlStringToObjectUnmarshalling {
static final String superHeroXml =
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"
+ "<super-hero>"
+ " <name>Superman</name>"
+ " <super-power>Flight</super-power>"
+ "</super-hero>";
@Test
void testXmlUnmarshalling() throws JAXBException {
JAXBContext jaxbContext = JAXBContext.newInstance(SuperHero.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
StringReader reader = new StringReader(superHeroXml);
SuperHero superHero = (SuperHero) unmarshaller.unmarshal(reader);
assertEquals("Flight", superHero.getSuperPower());
}
}
메모:
JAXBContext
클래스를 포함하는 SuperHero
생성 - JAXBContext.newInstance(SuperHero.class)
Unmarshaller
를 생성하고 unmarshal
메서드를 텍스트 래핑StringReader
에 적용합니다(해당 문제에 대해 FileReader
또는 기타Reader
일 수도 있음)Shared with ❤️ from Codever. Use 👉 copy to mine functionality to add it to your personal snippets collection.
Reference
이 문제에 관하여(JAXB를 사용하여 xml 문자열을 Java 객체로 언마샬링하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/codever/how-to-unmarshall-xml-string-to-java-object-with-jaxb-1oif텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)