谢谢renggli @ github,zoeichi for dart:io援助。
要做dart-xml回购与外部文件尝试的例子;
import 'dart:io';
import 'package:xml/xml.dart' as xml;
void main(){
//create file bookshelf.xml seperately using example on github.
// <?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>
// <price>132.00</price>
// </bookshelf>
//parse external file
var book = xml.parse(new File('bookshelf.xml').readAsStringSync());
print(book.toString());
print('---');
//finding elements
var titles = book.findAllElements('title');
titles
.map((node) => node.text)
.forEach(print);
//finding elements, convert strings to compute sum
var total = book.findAllElements('book')
.map((node) => double.parse(node.findElements('price').single.text))
.reduce((a, b) => a + b);
print(total);
print('---');
//build external file using example
var builder = new xml.XmlBuilder();
builder.processing('xml', 'version="1.0"');
builder.element('bookshelf', nest:() {
builder.element('book', nest:() {
builder.element('title', nest:() {
builder.attribute('lang', 'english');
builder.text('Growing a Language');
});
builder.element('price', nest: 29.99);
});
builder.element('book', nest:() {
builder.element('title', nest:() {
builder.attribute('lang', 'english');
builder.text('Learning XML');
});
builder.element('price', nest: 39.95);
});
builder.element('price', nest: 132.00);
});
var bookshelfXml = builder.build();
//create and write eternal file name and contents
var buildXml = new File('bookshelfDartCreated.xml');
buildXml.writeAsString(bookshelfXml.toString());
//check newly created file
new File('bookshelfDartCreated.xml').readAsString().then((String contents) {
print(contents);
});
}
这是代码在浏览器还是服务器上运行? –
嗨Zochi,目前我只是在dart上工作:io能够提供xml文件。但是,我希望最终可以为聚合物元素提供xml和xslt文件。 – lubi