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"));
}

multilineパラメータを true に設定しても機能しないようです。ファイルからすべての改行記号を削除しても問題ありません。

私は何か間違ったことをしていますか、それともバグを報告する時ですか :)?

4

1 に答える 1

1

XML は正規表現では適切に解析できません (詳細については、この投稿を参照してください)。Dart は現在、SDK に XML パーサーを同梱していません。ただし、ここにはオープン ソースの Dart XML パーサーが存在します

于 2012-04-01T21:42:51.410 に答える