2

QStringからある種の(または純粋な)XMLコードを解析したいと思います。

私のQStringは次のようなものです:

<a>cat</a>My cat is very nice.

2つの文字列を取得したい:

、そして私の猫はとてもいいです。

XMLパーサーはおそらく必要ないと思いますが、将来的には同じ文字列にさらに多くのタグを含める予定なので、これも非常に興味深い点です。

4

2 に答える 2

6

Qtには、QRegExpQStringの解析に役立つクラスがあります。

ドキュメントの例によると:

 QRegExp rxlen("^<a>(.*)</a>(.*)$");
 int pos = rxlen.indexIn("<a>cat</a>My cat is very nice.");
 QStringList list
 if (pos > -1) {
     list << = rxlen.cap(1); // "cat"
     list << = rxlen.cap(2); // "My cat is very nice."
 }

QStringListリストにはとが含まれcatますMy cat is very nice.

于 2010-08-27T07:28:04.637 に答える
3

正規表現を使用できます<a>(.*)</a>(.*)

使用するBoost場合は、次のように実装できます。

boost::regex exrp( "^<a>(.*)</a>(.*)$" );
boost::match_results<string::const_iterator> what;
if( regex_search( input_string, what, exrp ) ) {
    std::string tag( what[1].first, what[1].second );
    std::string value( what[2].first, what[2].second );
}
于 2010-08-27T07:16:13.163 に答える