dart, flutter で XmlElementを追加する方法です。
import 'package:flutter/material.dart'; import 'package:xml/xml.dart' as xml; import 'dart:async'; import 'dart:io'; import 'dart:core'; var bookshelfXml = '''<?xml version="1.0"?> <bookshelf> <book> <title lang="english">Growing a Language</title> <price>29.99</price> </book> <book> <title lang="english">Learning XML</title> <price>39.95</price> </book> </bookshelf>'''; var document = xml.parse(bookshelfXml); var element_book = xml.XmlElement(xml.XmlName('book')); var element_title = xml.xmlElement(xml.XmlName('title'))..attributes.add(xml.XmlAttribute(xml.XmlName('lang'), 'english'))..children.add(xml.XmlText('My book')); var element_price = xml.XmlElement(xml.XmlName('price'))..children.add(xml.XmlText('19.95')); element_book..children.add(element_title); element_book..children.add(element_price); document.rootElement.children.add(element_book);
この方法でbook要素に title が My book, price が 19.95 の book が追加されます。
<?xml version="1.0"?> <bookshelf> <book> <title lang="english">Growing a Language</title> <price>29.99</price> </book> <book> <title lang="english">Learning XML</title> <price>39.95</price> </book> <book> <title lang="english">My book</title> <price>19.95</price> </book> </bookshelf>
children.add に別のXmlDocumentのXmlNode, XmlElement などを配置すると例外が発生します。xml.XmlElement(xml.XmlName(“book”)) 等で生成または、xml.XmlElement.copy() を使用する必要があります。