Dart:regexp来解析多行xml文档

时间:2012-04-01 20:58:49

标签: xml regex dart

我正在尝试解析这样的简单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"));
}

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

我做错了什么或是报告错误的时候:)?

1 个答案:

答案 0 :(得分:1)

正则表达式无法正确解析XML(有关详细信息,请参阅this post),Dart目前未在其SDK中附带XML解析器。但是确实存在开源Dart XML解析器here