Dart:
「XMLとの作業」
方法:
Dartの標準ライブラリにはXMLの処理をサポートする機能が組み込まれていないため、サードパーティ製のパッケージを使用する必要があります。xml
は人気のあるパッケージの一つです。これを使用するには、まずpubspec.yaml
に追加する必要があります:
dependencies:
xml: ^5.0.0 // 利用可能な最新バージョンを使用する
次に、Dartファイルでパッケージをインポートします:
import 'package:xml/xml.dart' as xml;
XMLの解析:
次のようなXML文字列があるとします:
<String name="greeting">Hello, world!</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">Hello, world!</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('Hello, world!');
});
final xmlDocument = builder.buildDocument();
print(xmlDocument.toXmlString(pretty: true));
}
void main() {
createXml();
}
出力:
<?xml version="1.0"?>
<greeting name="hello">Hello, world!</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('Goodbye!')]));
print(document.toXmlString(pretty: true));
}
void main() {
final xmlString = '<greeting name="hello">Hello, world!</greeting>';
modifyXml(xmlString);
}
出力:
<greeting name="greeting_modified">
Hello, world!
<message>Goodbye!</message>
</greeting>
これらの例では、DartでXMLを扱うための基本的な操作を示しています。xml
パッケージを使用すると、アプリケーションの要件に合わせてXMLドキュメントを解析、作成、および操作することができます。