Dart: регулярное выражение для анализа многострочного XML-документа - PullRequest
1 голос
/ 02 апреля 2012

Я пытаюсь разобрать простой 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 Ответ

1 голос
/ 02 апреля 2012

XML не может быть должным образом проанализирован с помощью регулярных выражений (см. этот пост для получения дополнительной информации), и Dart в настоящее время не поставляется с анализатором XML в своем SDK.Однако существует XML-анализатор Dart с открытым исходным кодом здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...