XML 知识量:7 - 28 - 99
将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元素绑定分为单记录数据绑定和多记录数据绑定。
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中的数据绑定到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中含有属性时,数据岛将把属性作为其所属元素的子元素进行处理。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>
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6