質問

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

私のQSTRINGは次のようなものです

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

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

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

XMLパーサーはおそらく必要ではないと思いますが、将来的には同じ文字列にもっとタグがあるので、非常に興味深い点でもあります。

役に立ちましたか?

解決

QTにはあります QRegExp QSTRINGを解析するのに役立つクラス。

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

 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リストには、 catMy cat is very nice.

他のヒント

正規表現を使用できます <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 );
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top