0
QByteArrayにXMLファイルがあります。配列内の文字列を見つけるためにindexOfメソッドを使用していますが、返される位置が正しくありません。 qDebugを使用してデータの内容を調べると、データにエスケープ文字が含まれていることがわかりますが、問題はありませんが、indexOfがエスケープ文字を数えているとは思われません。Qt5.5 QByteArray indexOf midが間違った結果
例えば結果から:
qDebug() << arybytXML;
この結果から抜粋である:
<?xml version="1.0" encoding="utf-8"?><!--\n Node: gui\n Attrbuttes: left, right, top and bottom defines the pixel white space to allow\n from the edge of the display\n\t\tlanguage, should be set to the appropriate country code, an XML file named using\n\t\tthe country code must exist, e.g. 44.xml\n//-->\n<gui id=\"root\" bottom=\"0\" left=\"0\" right=\"0\" top=\"24\" language=\"44\">
Iはコード使用:
intOpenComment = arybytXML.indexOf("<!--");
結果ことであるがintOpenComment 39です。私は最後のコメントを検索し、データを抽出しようとすると私は間違った結果を得ます:
intClosingComment = arybytXML.indexOf("-->", intOpenComment);
QString strComment = arybytXML.mid(intOpenComment
,intClosingComment + strlen("-->"));
結果:
<!--\n Node: gui\n Attrbuttes: left, right, top and bottom defines the pixel white space to allow\n from the edge of the display\n\t\tlanguage, should be set to the appropriate country code, an XML file named using\n\t\tthe country code must exist, e.g. 44.xml\n//-->\n<gui id=\"root\" bottom=\"0\" left=\"0\" rig"
結果は後に停止する必要があります - >、なぜ多くのデータがありますか?