跳转至

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_TOXML:将名为 mapNameMAP 转换为 XML,返回转换后的 XML 文本。
  • MAP_FROMXML:解析对应格式的 XML 并将内容读取到名为 mapNameMAP 中。

XML 必须为如下格式:

<map>
    <p><k>键名1</k><v>值1</v></p>
    <p><k>键名2</k><v>值2</v></p>
    <p><k>键名2</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