Programming/JAVA / / 2024. 3. 19. 18:22

java xml 사용법 및 예시

반응형

자바언어를 사용하다보면 다양한 데이터 구조를 사용하기도 합니다.

그중 태그와 속성이 있는 간단한 텍스트 기반 구문으로 사람이 읽고 쓰고 이해하기 쉽고, 플랫폼 독립적이어서

모든 프로그래밍 언어나 플랫폼에 사용 할 수 있는 XML 정의와 사용법에 대해서 알려드리겠습니다.

 

XML 이란?

XML(eXtensible Markup Language)은 구조화된 형식으로 데이터를 저장하고 전송하도록 설계된 마크업 언어입니다. 간단하고 유연하며 플랫폼에 독립적인 텍스트 기반 형식으로 구조화된 데이터를 사람이 읽을 수 있는 형태로 표현하는 데 널리 사용됩니다. XML의 몇 가지 주요 측면은 다음과 같습니다.

 

마크업 언어: HTML과 마찬가지로 XML은 태그를 사용하여 데이터의 구조와 의미를 정의합니다. 그러나 웹 브라우저에서 콘텐츠를 표시하는 데 주로 사용되는 HTML과 달리 XML은 데이터를 표현하고 설명하기 위해 설계되었습니다.

 

계층 구조: XML 문서는 요소, 속성 및 텍스트 내용으로 구성된 계층 구조를 가지며 요소는 다른 요소를 포함하여 트리와 같은 구조를 형성할 수 있습니다.

 

요소: 요소는 XML 문서의 구성 요소이며 시작 태그와 끝 태그 내에 포함됩니다. 각 요소는 요소에 대한 추가 정보를 제공하는 속성을 가질 수 있습니다.

 

속성: 속성은 요소에 대한 추가 정보를 제공하며 시작 태그 내에 지정됩니다. 각 속성은 이름-값 쌍으로 구성됩니다.

 

텍스트 내용: 요소에 텍스트 내용이 포함될 수 있으며, 이는 요소와 관련된 데이터를 나타냅니다.

 

Well-Formeness: XML 문서는 단일 루트 요소, 적절한 중첩 요소 및 올바른 형식의 태그를 포함하여 Well-Formeness 규칙을 준수해야 합니다.

 

확장성: XML은 확장성이 있어 사용자가 자신만의 사용자 정의 태그와 문서 구조를 정의할 수 있습니다. 이러한 유연성으로 인해 XML은 다양한 응용 프로그램과 사용 사례에 적합합니다.

 

네임스페이스: XML 네임스페이스를 사용하면 동일한 이름을 가지더라도 요소와 속성을 고유하게 식별할 수 있습니다. 이것은 다른 소스의 XML 문서를 결합할 때 특히 유용합니다.

 

XML은 웹 개발, 데이터 교환, 구성 파일, 문서 저장 등 다양한 영역에서 일반적으로 사용됩니다. 프로그래밍 언어와 기술에 의해 널리 지원되며 XML 문서를 구문 분석, 생성 및 조작할 수 있는 많은 도구와 라이브러리가 있습니다. 그 인기에도 불구하고 XML은 특히 단순성과 효율성이 우선시되는 웹 개발에서 특정 사용 사례에서 JSON과 같은 더 가벼운 형식으로 대체되었습니다. 그러나 XML은 다른 많은 맥락에서 구조화된 데이터를 표현하는 데 유용한 도구로 남아 있습니다.

 

java xml 쓰기

 

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
 
public class CreateXMLExample {
    public static void main(String[] args) {
        try {
            // Create a new DocumentBuilderFactory
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = factory.newDocumentBuilder();
 
            // Create a new Document
            Document document = builder.newDocument();
 
            // Create the root element
            Element rootElement = document.createElement("students");
            document.appendChild(rootElement);
 
            // Create student elements
            Element student1 = createStudentElement(document, "John""Doe""25");
            rootElement.appendChild(student1);
 
            Element student2 = createStudentElement(document, "Jane""Smith""23");
            rootElement.appendChild(student2);
 
            // Write the DOM document to an XML file
            TransformerFactory transformerFactory = TransformerFactory.newInstance();
            Transformer transformer = transformerFactory.newTransformer();
            DOMSource source = new DOMSource(document);
            StreamResult result = new StreamResult(System.out); // Print to console for this example
            transformer.transform(source, result);
 
            System.out.println("XML file created successfully!");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 
    private static Element createStudentElement(Document document, String firstName, String lastName, String age) {
        // Create student element
        Element student = document.createElement("student");
 
        // Create and append name elements
        Element firstNameElement = document.createElement("firstName");
        firstNameElement.appendChild(document.createTextNode(firstName));
        student.appendChild(firstNameElement);
 
        Element lastNameElement = document.createElement("lastName");
        lastNameElement.appendChild(document.createTextNode(lastName));
        student.appendChild(lastNameElement);
 
        // Create and append age element
        Element ageElement = document.createElement("age");
        ageElement.appendChild(document.createTextNode(age));
        student.appendChild(ageElement);
 
        return student;
    }
}
 
cs

 

먼저 DocumentBuilderFactory 및 DocumentBuilder를 작성하여 새 XML 문서를 작성합니다.
createElement()와 appendChild()를 사용하여  students 이라는 루트 요소를 만듭니다.
각 학생 요소의 생성을 캡슐화하는 createStudentElement() 메서드를 사용하여 학생 요소를 만듭니다.
createStudentElement() 내부에서는 각 학생(예: 이름, 성, 나이)에 대한 하위 요소를 생성하여 학생 요소에 추가합니다.
마지막으로 트랜스포머를 사용하여 DOM 문서를 XML 파일 또는 기타 출력 스트림에 씁니다(이 경우 단순화를 위해 콘솔에 인쇄합니다).
이 코드를 실행하면 학생 데이터의 XML 표현이 출력됩니다

1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<students>
    <student>
        <firstName>John</firstName>
        <lastName>Doe</lastName>
        <age>25</age>
    </student>
    <student>
        <firstName>Jane</firstName>
        <lastName>Smith</lastName>
        <age>23</age>
    </student>
</students>
 
cs

java xml 읽기

 

1
2
3
4
5
6
7
8
9
10
11
12
<library>
    <book>
        <title lang="en">Harry Potter</title>
        <author>J.K. Rowling</author>
        <isbn>9780545010221</isbn>
    </book>
    <book>
        <title lang="en">The Hobbit</title>
        <author>J.R.R. Tolkien</author>
        <isbn>9780547928225</isbn>
    </book>
</library>
 
cs

 

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
28
29
30
31
32
33
34
35
36
37
38
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
 
public class XMLExample {
    public static void main(String[] args) {
        try {
            // Load XML file
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = factory.newDocumentBuilder();
            Document document = builder.parse("books.xml");
 
            // Get the root element
            Element library = document.getDocumentElement();
 
            // Get all 'book' elements
            NodeList bookNodes = library.getElementsByTagName("book");
 
            // Iterate over 'book' elements
            for (int i = 0; i < bookNodes.getLength(); i++) {
                Element book = (Element) bookNodes.item(i);
                String title = book.getElementsByTagName("title").item(0).getTextContent();
                String author = book.getElementsByTagName("author").item(0).getTextContent();
                String isbn = book.getElementsByTagName("isbn").item(0).getTextContent();
 
                // Print book details
                System.out.println("Title: " + title);
                System.out.println("Author: " + author);
                System.out.println("ISBN: " + isbn);
                System.out.println();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
 
cs

 

감사합니다.

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유