Dart:
XML과 함께 작업하기

어떻게:

Dart는 표준 라이브러리에서 XML 처리를 위한 내장 지원을 포함하고 있지 않으므로, 제3자 패키지 사용이 필요합니다. 인기 있는 패키지 중 하나는 xml입니다. 사용하기 위해서는 먼저 pubspec.yaml에 추가해야 합니다:

dependencies:
  xml: ^5.0.0 // 사용 가능한 최신 버전을 사용하세요

그런 다음 Dart 파일에 패키지를 import하세요:

import 'package:xml/xml.dart' as xml;

XML 파싱하기:

이렇게 XML 문자열이 있다고 가정해 보세요:

<String name="greeting">안녕하세요, 세상!</String>

다음과 같이 XML을 파싱하고 읽을 수 있습니다:

void parseXml(String xmlString) {
    final document = xml.XmlDocument.parse(xmlString);
    final String content = document.findElements('String').single.getAttribute('name');
    print(content); // 출력: greeting
}

void main() {
  final xmlString = '<String name="greeting">안녕하세요, 세상!</String>';
  parseXml(xmlString);
}

XML 문서 생성하기:

xml 패키지를 이용해 새로운 XML 문서를 생성하는 것은 간단합니다:

void createXml() {
  final builder = xml.XmlBuilder();
  builder.processing('xml', 'version="1.0"');
  builder.element('greeting', nest: () {
    builder.attribute('name', 'hello');
    builder.text('안녕하세요, 세상!');
  });
  final xmlDocument = builder.buildDocument();
  print(xmlDocument.toXmlString(pretty: true));
}

void main() {
  createXml();
}

출력:

<?xml version="1.0"?>
<greeting name="hello">안녕하세요, 세상!</greeting>

XML 조회 및 수정하기:

요소를 찾거나 수정하기 위해 XPath와 유사한 메소드를 사용할 수 있습니다:

void modifyXml(String xmlString) {
    var document = xml.XmlDocument.parse(xmlString);
    var greeting = document.findAllElements('greeting').first;
    
    // 'name' 속성 수정
    greeting.setAttribute('name', 'greeting_modified');
    
    // 새로운 자식 요소 추가
    greeting.children.add(xml.XmlElement(xml.XmlName('message'), [], [xml.XmlText('안녕!')]));
    
    print(document.toXmlString(pretty: true));
}

void main() {
  final xmlString = '<greeting name="hello">안녕하세요, 세상!</greeting>';
  modifyXml(xmlString);
}

출력:

<greeting name="greeting_modified">
  안녕하세요, 세상!
  <message>안녕!</message>
</greeting>

이 예시들은 Dart에서 XML을 다루기 위한 기본 작업을 보여줍니다. xml 패키지를 사용하면, 애플리케이션 요구 사항에 맞게 XML 문서를 파싱하고, 생성하고, 조작할 수 있습니다.