Java XML root 노드 추가
Java XML root 노드 추가
1. XML root 노드 추가
표준 XML은 root 태그가 있다. 그러나 XML 변환시 표준 XML 형식을 따르지 않는 경우가 있다.
XML을 더 읽기 쉽고 표준을 준수하도록 root 태그를 추가할 수 있다.
2. Jackson Dependency 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.16.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.16.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.16.1</version>
</dependency>
3. 예제
- XmlAddNode.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class XmlAddNode {
public static void main(String[] args) throws JsonProcessingException {
String xmlString = "<date>2024-01-15</date>\n" +
"<sendOrgCd>F001</sendOrgCd>\n" +
"<stat>01</stat>\n" +
"<orgCd>N11</orgCd>\n" +
"<carNum>123가4567</carNum>\n" +
"<startDate>2024-01-01</startDate>\n" +
"<endDate>9999-12-31</endDate>";
XmlMapper xmlMapper = new XmlMapper();
xmlMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
xmlMapper.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true);
xmlMapper.configure(ToXmlGenerator.Feature.WRITE_XML_1_1, true);
String resultXml = xmlMapper.writer().withRootName("root").writeValueAsString(xmlString);
log.info(resultXml);
}
}
[출처 및 참고]
This post is licensed under CC BY 4.0 by the author.