Dart:
Työskentely XML:n kanssa

Kuinka tehdä:

Dart ei sisällä sisäänrakennettua tukea XML:n käsittelyyn sen standardikirjastossa, mikä edellyttää kolmansien osapuolten pakettien käyttöä. Yksi suosittu paketti on xml. Käyttääksesi sitä, sinun on ensin lisättävä se pubspec.yaml-tiedostoosi:

dependencies:
  xml: ^5.0.0 // Käytä saatavilla olevaa uusinta versiota

Tuo sitten paketti Dart-tiedostoosi:

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

XML:n jäsennys:

Oletetaan, että sinulla on XML-merkkijono kuten tämä:

<String name="greeting">Hei, maailma!</String>

Voit jäsentää ja lukea XML:n seuraavasti:

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

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

XML-dokumenttien luominen:

Uuden XML-dokumentin luominen on suoraviivaista xml-paketilla:

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

void main() {
  createXml();
}

Tuloste:

<?xml version="1.0"?>
<greeting name="hello">Hei, maailma!</greeting>

XML:n tiedustelu ja muokkaus:

Elementtien löytämiseen tai muokkaamiseen voit käyttää XPathin kaltaisia menetelmiä:

void modifyXml(String xmlString) {
    var document = xml.XmlDocument.parse(xmlString);
    var greeting = document.findAllElements('greeting').first;
    
    // Muokataan 'name'-attribuuttia
    greeting.setAttribute('name', 'greeting_modified');
    
    // Lisätään uusi lapsielementti
    greeting.children.add(xml.XmlElement(xml.XmlName('message'), [], [xml.XmlText('Näkemiin!')]));
    
    print(document.toXmlString(pretty: true));
}

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

Tuloste:

<greeting name="greeting_modified">
  Hei, maailma!
  <message>Näkemiin!</message>
</greeting>

Nämä esimerkit osoittavat perustoiminnot XML:n käsittelyyn Dartissa. xml-paketin avulla voit jäsentää, luoda ja manipuloida XML-dokumentteja sovelluksesi vaatimusten mukaisesti.