xml

阅读(884) 标签: xml, import,

xml格式可以比较方便地存储树状结构的数据,因此常用于各种配置文件中,使用xml格式也可以用字符串格式来存储数据。

先用一个例子来简单了解如何使用xml作为数据源使用:

 

A

1

=file("data.xml")

2

=A1.read().import@x()

3

=xml(A1.read())

4

=A1.read().import@x(;"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,并在其中存储了两个表citiesstate的数据,存储时每一条数据都以表名为节点,记录各个字段的值分别列出。A2中从文件中用read函数读出字串,再用import@x函数将字串读入:

此时,xml字串将被解析为1条记录,双击可查看:

可以看到,citiesstate被解析为了记录中的两个字段值,双击可以查看。

A2中的表达式也可以写为A3xml() 函数的模式,两种方法读出的结果是相同的。

使用import@x时,也可以直接指定节点名称,如A4中返回结果如下:

 

使用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中得到的结果如下: