在Dart中读取XML文件

Bla*_*out 2 xml dart

我是Dart语言的新手。

我想读取一个XML文件,并且正在关注这些链接(它们实际上是相同的)https://pub.dartlang.org/packages/xml或github的页面https://github.com/renggli/ dart-xml

但是我在使用某些方法(例如“ findAllElements”)时遇到问题。我在dart文件中导入他们拥有的xml库,然后导入集合,核心和html:

library xml;    
import 'dart:collection';
import 'dart:core';
import 'dart:html';
Run Code Online (Sandbox Code Playgroud)

我的代码是:

  var document = responseText;

  var titles = document.findAllElements('trkpt');

  titles
      .map((node) => node.text)
      .forEach(print);
Run Code Online (Sandbox Code Playgroud)

当我测试程序时,出现以下错误:

NoSuchMethodError:找不到方法:'findAllElements'

我需要进口什么?我仍在探索这种语言,我的目标是仅从XML获取数据并为其应用过滤器!有教程吗?有什么建议吗?

Luk*_*gli 8

我看到两个问题,但是我可能会丢失部分代码:

  • 您没有指定是什么responseText,但是在我看来,它看起来像是String。如您所链接的教程中所述,您需要先解析文本,然后才能对其进行查询。

  • 您不导入XML库,请按照https://pub.dartlang.org/packages/xml上的安装说明进行操作。

以下最小示例对我有用:

library example;

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

void main() {
  var storeXml = '<?xml?><store><book title="First"/><book title="Second"/></store>';
  var storeDocument = xml.parse(storeXml);
  print(storeDocument.findAllElements('book'));
}
Run Code Online (Sandbox Code Playgroud)

  • `storeDocument.findAllElements('book').map((each) =&gt; each.getAttribute('title')` 提取标题。 (2认同)