2016-03-08 304 views
1

我是Dart语言的新成员。在Dart中读取XML文件

我想读取一个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'; 

我的代码是:

var document = responseText; 

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

    titles 
     .map((node) => node.text) 
     .forEach(print); 

虽然我测试我的节目,我有这样的错误:

NoSuchMethodError: method not found: 'findAllElements'

我需要导入更多的东西?我仍然在探索这种语言,我的目标是从XML获取数据并为其应用过滤器!任何教程?任何建议?

+1

你的文档变量,显然不是一个XmlDocument的实例。什么是responseText?如果它是一个包含xml的字符串,则需要解析它以获取XmlDocument:var document = parse(responseText); –

回答

2

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

  • 你不指定什么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')); 
} 
+0

我想开始我需要学习导入包,我的问题是这些小技巧。我该如何做到在我的包文件夹中获取该包?或者更好,我可以从哪里得到它们? – Blackout

+0

在https://pub.dartlang.org/packages/xml的“安装”(Installation)选项卡上按步骤执行。另外这可能对一般概念有所帮助:https://www.dartlang.org/tools/pub/get-started.html –

+0

谢谢你!有效!现在我有一个小问题,我会感谢你的回答:你如何从每个节点获得属性? 例如,从链接示例中,想象一下,我想要在每个节点中获取语言吗? – Blackout