3

プロジェクトで XML ファイルを取得しようとしていますが、正しく動作しないようです。libXMLXMLファイルを解析するために(cocos2d-x-2.0.4に付属しているもの)を使用しています。

私は使用してCCFileUtils::sharedFileUtils() -> fullPathFromRelativePath( );いますが、問題は、Android バージョンの場合、フル パスが表示されないことです。ただし、iOSでは問題なく動作します。

その後、GitHub を調べたところ、奇妙なことがわかりました。は、渡されたものfullPathFromRelativePath( )だけを返すことがわかりました。

GitHubから:

const char* CCFileUtils::fullPathFromRelativePath(const char *pszRelativePath)
{
    return pszRelativePath;
}

私はどこでも見てきましたが、私が得たのはCCFileUtils. 私はすでに XML ファイルを解析できます。fullPathFromRelativePath()唯一の問題は、Android で使用する XML ファイルのフル パスを取得できないことです。

AndroidでXMLファイルのフルパスを取得するにはどうすればよいですか?

4

1 に答える 1

3

その機能に問題はありません。問題は、xmlファイルがzipファイルであるapk内にあることです。そのファイルを直接読み取ることはできません。次のようなものを使用する必要があります。

long tmpSize;
const char* xmlData = CCFileUtils::sharedFileUtils()->getFileData(YOUR_PATH_TO_FILE, "r", &tmpSize);

次に、libxmlを使用して取得したデータを処理できます。

ただし、apkファイル内では何も変更できないことに注意してください。xmlに書き込みたい場合は、最初に書き込み可能なパスにコピーする必要があります(sdcardまたはを使用してgetWritablePath())。

apk内にないファイルの場合、fopen()を直接使用でき、getFileData()はもう必要ありません。

お役に立てれば。

于 2012-12-12T22:32:24.913 に答える