XML

XML 知识量:7 - 28 - 99

7.2 数据岛的应用><

如何显示XML数据- 7.2.1 -

将XML数据嵌入到HTML文档后,还需要在HTML中绑定XML元素,才能实现在HTML中正确显示XML数据。数据绑定时,需要通过在HTML标记中添加datasrc和datafld属性,分别用于指明链接数据岛的名称和XML元素名称。

在HTML中,并不是所有的标记都允许绑定XML元素,可以绑定XML元素的HTML标记如下:

HTML标记作用被绑定的属性
a创建超链接href
applet在页面中嵌入Java应用程序param
button创建按钮innerHTML、innerText
div创建可格式化的部分文档innerHTML、innerText
frame创建框架src
iframe创建可浮动框架src
img插入图像src
input type=checkbox创建复选框checked
input type=hidden创建隐藏控件value
input type=password创建口令输入框value
input type=radio创建单选按钮checked
input type=text创建文本输入框value
label创建标签innerHTML、innerText
marquee创建滚动文字innerHTML、innerText
select创建下拉列表列表项目
span创建格式化内联文本innerHTML、innerText
textarea创建多行文本输入区value

注意:

  • 被绑定的innerHTML属性允许XML元素内容中出现HTML标记。

  • 当含有HTML标记的XML元素被绑定到src、value、innerText等属性时,浏览器并不处理这些标记,只会原样显示。

XML元素绑定到HTML- 7.2.2 -

XML元素绑定分为单记录数据绑定和多记录数据绑定。

1、在HTML中可以使用span、label、marquee、button和div等标记来绑定具有单条记录的XML文档。下面是一个示例:

<!DOCTYPE html>
<html>
    <head>
        <title>单记录数据绑定</title>
        <meta charset="UTF-8">
    </head>
    <body>
        <xml id="xmldata">
            <?xml version="1.0" encoding="UTF-8"?>
            <peoplelist>
                <people>
                    <name>李明</name>
                    <sex>男</sex>
                </people>
            </peoplelist>
        </xml>
        <h3>绑定数据如下:</h3>
        <div>
            姓名:<span datasrc="#xmldata" datafld="name"></span><br/>
            性别:<span datasrc="#xmldata" datafld="sex"></span>
        </div>
    </body>
</html>

以上代码中,<xml>标记的id属性定义数据源的名称为xmldata,而<span>标记中的datasrc属性指明要链接的数据岛的名称,注意名称前要加#号;datafld属性指明要绑定的XML元素的姓名。

2、当XML文档中存在多条记录时,数据岛对象就称为记录集,可以使用记录集提供的方法浏览记录。数据岛记录集的方法如下:

方法作用
MoveFirst显示第一条记录
MoveLast显示最后一条记录
MovePrevious显示上一条记录
MoveNext显示下一条记录
Move显示指定编号的记录(编号从0开始)

下面是一个示例:

<!DOCTYPE html>
<html>
    <head>
        <title>多记录数据绑定</title>
        <meta charset="UTF-8">
    </head>
    <body>
        <xml id="xmldata">
            <?xml version="1.0" encoding="UTF-8"?>
            <peoplelist>
                <people>
                    <name>李明</name>
                    <sex>男</sex>
                </people>
                <people>
                    <name>王强</name>
                    <sex>男</sex>
                </people>
            </peoplelist>
        </xml>
        <h3>绑定数据如下:</h3>
        <div>
            姓名:<span datasrc="#xmldata" datafld="name"></span><br/>
            性别:<span datasrc="#xmldata" datafld="sex"></span>
        </div>
        <button onclick="xmldata.recordset.MoveFirst()">第一条</button>
        <button onclick="if(!(xmldata.recordset.BOF)){xmldata.recordset.MovePrevious();}">上一条</button>
        <button onclick="if(!(xmldata.recordset.EOF)){xmldata.recordset.MoveNext();}">下一条</button>
        <button onclick="xmldata.recordset.MoveLast()">最后一条</button>
    </body>
</html>

使用表格显示XML- 7.2.3 -

可以将XML中的数据绑定到HTML表格标记中,实现在一页同时显示多条记录。注意:使用表格时,表头必须通过<thead>和<th>标记来设定。下面是一个示例:

<!DOCTYPE html>
<html>
    <head>
        <title>绑定表格</title>
        <meta charset="UTF-8">
    </head>
    <body>
        <xml id="xmldata">
            <?xml version="1.0" encoding="UTF-8"?>
            <peoplelist>
                <people>
                    <name>李明</name>
                    <sex>男</sex>
                </people>
                <people>
                    <name>王强</name>
                    <sex>男</sex>
                </people>
            </peoplelist>
        </xml>
        <h3>人员信息:</h3>
        <table datasrc="#xmldata">
            <thead>
            <th>姓名</th>
            <th>性别</th>
            </thead>
            <tr>
                <td><span datafld="name"></span></td>
                <td><span datafld="sex"></span></td>
            </tr>
        </table>
    </body>
</html>

显示XML属性- 7.2.4 -

当XML中含有属性时,数据岛将把属性作为其所属元素的子元素进行处理。XML元素的属性分为非底层元素包含的属性和底层元素包含的属性。底层元素一般是指没有子元素的元素。

对于非底层元素,显示其属性与显示其子元素的方法完全一样。

对于底层元素,显示其属性时,将被绑定的HTML标记的datafld属性赋值为属性的名称;显示其文本内容时,将被绑定的HTML标记的datafld属性赋值为$text。下面是一个示例:

<!DOCTYPE html>
<html>
    <head>
        <title>显示XML属性</title>
        <meta charset="UTF-8">
    </head>
    <body>
        <xml id="xmldata">
            <?xml version="1.0" encoding="UTF-8"?>
            <peoplelist>
                <people>
                    <name age="18">李明</name>
                    <sex>男</sex>
                </people>
                <people>
                    <name age="20">王强</name>
                    <sex>男</sex>
                </people>
            </peoplelist>
        </xml>
        <h3>人员信息:</h3>
        <table datasrc="#xmldata">
            <thead>
            <th>姓名</th>
            <th>年龄</th>
            <th>性别</th>
            </thead>
            <tr>
                <td><span datafld="$text"></span></td>
                <td><span datafld="age"></span></td>
                <td><span datafld="sex"></span></td>
            </tr>
        </table>
    </body>
</html>