コンテンツにスキップ

MAPシリアライズ系

関数名 引数 戻り値
MAP_TOXML string string
MAP_FROMXML string, string int

API

1. string MAP_TOXML, mapName
2. int MAP_FROMXML, mapName, xmlMap

MAP(連想配列,Dictionary<string,string>)とXMLを互いに変換する関数です。MAPの内容をセーブファイルに保存したい時に使えます。

  • MAP_TOXMLmapNameに対応するMAPXMLへ変換して返します。
  • MAP_FROMXMLmapNameに対応するMAPに、XMLのキー・値ペアを読み取り上書きします。

XMLは、必ず

<map>
    <p><k>キー1</k><v>値1</v></p>
    <p><k>キー2</k><v>値2</v></p>
    <p><k>キー3</k><v>値3</v></p>
    ....
</map>
のようにします。

ヒント

命令、式中関数両方対応しています。

MAIN.ERB
@SYSTEM_TITLE
    #DIM i
    #DIMS xml

    MAP_CREATE "MyMap"
    FOR i, 0, 3
        MAP_SET "MyMap", TOSTR(i), TOSTR(i*100)
    NEXT
    xml '= MAP_TOXML("MyMap")
    PRINTSL xml

    MAP_CLEAR "MyMap"
    FOR i, 0, 3
        MAP_SET "MyMap", TOSTR(i), TOSTR(i)
        PRINTFORML MyMap["%TOSTR(i)%"] = %MAP_GET("MyMap", TOSTR(i))%
    NEXT
    PRINTL

    MAP_FROMXML "MyMap", xml
    FOR i, 0, 3
        PRINTFORML MyMap["%TOSTR(i)%"] = %MAP_GET("MyMap", TOSTR(i))%
    NEXT

    ONEINPUT
結果
<map><p><k>0</k><v>0</v></p><p><k>1</k><v>100</v></p><p><k>2</k><v>200</v></p></map>
MyMap["0"] = 0
MyMap["1"] = 1
MyMap["2"] = 2

MyMap["0"] = 0
MyMap["1"] = 100
MyMap["2"] = 200