0

私は次のようなブロックを持ついくつかの単純なC++でxmlを解析しようとしています

 <mgrwt event="1">
    ...
    ...
    ...
    </mgrwt>

<mgrwt event="2">
    ...
    ...
    ...
 </mgrwt>

今、私はこれらの各ブロックに作用するbashスクリプトを持っています-それで、私の質問は、xml内でループして(RapidXMLなどは必要ありません)、それぞれを小さな一時ファイルに簡単にダンプするにはどうすればよいですか?ブロック ?

私のパーサーは次のようになります

  bool begin_tag = false;
    while (getline(in,line))
    {
        std::string tmp; 
        tmp=line;
       if(line.find("<mgrwt event=")<=line.size()){
            cout<<line<<endl;
            begin_tag = true;
            continue;
        }
        else if (tmp == "</mgrwt>")
        {
            begin_tag = false;

        }

     }
}

ありがとう

アレックス

4

1 に答える 1

0

XMLファイルの読み取りにはXMLパーサーを使用することをお勧めします。海外駐在員、POCOXMLまたはその他のライブラリをチェックアウトします。

なんらかの理由でそれができず、読んでいるものが常にサンプルとまったく同じに見え、他のフォーマットのバリエーションがない場合find()は、ブロックの終わりを検出するためにも使用する必要があります。

else if(line.find("</mgrwt>")<=line.size())
{
   begin_tag = false;
}
于 2012-12-16T15:00:01.557 に答える