1

我正在尝试解析这样的简单 XML 文件:

<root>
    <subroot>
        <subsubroot>
        test
        </subsubroot>
    </subroot>
</root>

我为此使用以下代码:

#import('dart:core');
#import('dart:io');

class XMLParser {
  parse( File file ) {
    String xml = file.readAsTextSync();
    xml = xml.trim();
    //xml = xml.replaceAll("\n", "");
    print(xml);
    RegExp p = new RegExp("<([^<>]+)>(.*)</\\1>", true);
    Iterable it = p.allMatches(xml);
    print(it);
    Iterator itt = it.iterator();
    while( itt.hasNext() ) {
      print(itt.next().group(0));
    }
  }
}

main() {
  new XMLParser().parse(new File("test.xml"));
}

即使将多行参数设置为true ,它看起来也不起作用。当我从文件中删除所有换行符时,就可以了。

我做错了什么还是该报告错误了:)?

4

1 回答 1

1

正则表达式无法正确解析 XML(有关更多信息,请参阅这篇文章),并且 Dart 目前在其 SDK 中没有附带 XML 解析器。但是这里确实存在开源 Dart XML 解析器。

于 2012-04-01T21:42:51.410 回答