xml格式可以比较方便地存储树状结构的数据,因此常用于各种配置文件中,使用xml格式也可以用字符串格式来存储数据。
先用一个例子来简单了解如何使用xml作为数据源使用:
|
A |
1 |
=file("data.xml") |
2 |
=xml(A1.read()) |
3 |
=xml(A1.read(), "data") |
A1从文件data.xml中读取字串,data.xml中数据如下:
<?xml version="1.0" encoding="ISO-8859-13"?>
<data>
<cities>
<CID>1</CID>
<NAME>"New York"</NAME>
<POPULATION>8084316</POPULATION>
<STATEID>32</STATEID>
</cities>
<cities>
<CID>2</CID>
<NAME>"Los Angeles"</NAME>
<POPULATION>3798981</POPULATION>
<STATEID>5</STATEID>
</cities>
<cities>
<CID>3</CID>
<NAME>"Chicago"</NAME>
<POPULATION>2886251</POPULATION>
<STATEID>13</STATEID>
</cities>
<state>
<STATEID>1</STATEID>
<NAME>"Alabama"</NAME>
<ABBR>"AL"</ABBR>
</state>
<state>
<STATEID>2</STATEID>
<NAME>"Alaska"</NAME>
<ABBR>"AK"</ABBR>
</state>
</data>
在xml中定义了总体的节点data,并在其中存储了两个表cities和state的数据,存储时每一条数据都以表名为节点,记录各个字段的值分别列出。A2中从文件中用read函数读出字串,再用xml() 函数将字串读入:
此时,xml字串将被解析为1条记录,双击可查看:
可以看到,cities和state被解析为了记录中的两个字段值,双击可以查看。
使用xml() 函数时,也可以直接指定节点名称,如A3中返回结果如下:
使用xml数据时,节点的值有多种定义方法,如:
<?xml version="1.0" encoding="ISO-8859-13"?>
<data>
<state>
<STATEID NAME="Alabama" ABBR="AL">1</STATEID>
<STATEID NAME=" Alaska" ABBR="AK">2</STATEID>
</state>
</data>
读取这种类型的xml时,需要用xml@s() 函数:
|
A |
1 |
=file("data2.xml") |
2 |
=xml@s(A1.read()) |
A2中得到的结果如下: