Dart:
Làm việc với XML

Làm thế nào:

Dart không bao gồm hỗ trợ sẵn có cho việc xử lý XML trong thư viện chuẩn của nó, yêu cầu sử dụng các gói phần mềm của bên thứ ba. Một gói phổ biến là xml. Để sử dụng, bạn trước tiên cần thêm nó vào pubspec.yaml của mình:

dependencies:
  xml: ^5.0.0 // Sử dụng phiên bản mới nhất có sẵn

Sau đó, nhập gói vào tệp Dart của bạn:

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

Phân tích cú pháp XML:

Giả sử bạn có một chuỗi XML như sau:

<String name="greeting">Hello, world!</String>

Bạn có thể phân tích và đọc XML như sau:

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

void main() {
  final xmlString = '<String name="greeting">Hello, world!</String>';
  parseXml(xmlString);
}

Tạo Tài liệu XML:

Việc tạo một tài liệu XML mới là rất dễ dàng với gói xml:

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

void main() {
  createXml();
}

Kết quả:

<?xml version="1.0"?>
<greeting name="hello">Hello, world!</greeting>

Truy vấn và Chỉnh sửa XML:

Để tìm hoặc chỉnh sửa các phần tử, bạn có thể sử dụng các phương pháp tương tự như XPath:

void modifyXml(String xmlString) {
    var document = xml.XmlDocument.parse(xmlString);
    var greeting = document.findAllElements('greeting').first;
    
    // Chỉnh sửa thuộc tính 'name'
    greeting.setAttribute('name', 'greeting_modified');
    
    // Thêm một phần tử con mới
    greeting.children.add(xml.XmlElement(xml.XmlName('message'), [], [xml.XmlText('Goodbye!')]));
    
    print(document.toXmlString(pretty: true));
}

void main() {
  final xmlString = '<greeting name="hello">Hello, world!</greeting>';
  modifyXml(xmlString);
}

Kết quả:

<greeting name="greeting_modified">
  Hello, world!
  <message>Goodbye!</message>
</greeting>

Những ví dụ này minh họa các thao tác cơ bản khi làm việc với XML trong Dart. Với gói xml, bạn có thể phân tích cú pháp, tạo và thao tác tài liệu XML để đáp ứng yêu cầu của ứng dụng.