2012-04-01 12 views
1

を解析する:ダート:正規表現は、私はこのような単純なXMLファイルを解析しようとしている複数行の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

これはあなたの正規表現の不具合に直接答えるものではありませんが、[このコーディングホラーの投稿](http://www.codinghorror.com/blog/2009/11/parsing-html-the-cthulhuway)を読むことをお勧めします。 html)(攻撃としてではなく、有用なポインタとしてください)。 – sgmorrison

+0

私はそこから取得する必要がありますか分からない:) xmlを解析するダーツhtml/xmlパーサを探す必要がありますか? – firen

+0

@firenダーツがXMLパーサを追加する必要があるバグを報告する必要があります。 XML文書は正規表現では適切に処理できません。 –

答えて

1

XMLは正規表現(詳細についてはthis投稿を参照)で正しく解析できません。また、Dartでは現在、SDKにXMLパーサーが付属していません。しかし、オープンソースのDart XMLパーサーhereが存在します。

関連する問題