自动摘要: 1.XML:可扩展标记语言(eXtensibleMarkupLanguage) 2.XML:传输和存储数据,焦点是数据的内容,传输信息 HTML:显示数据,焦点是数据的外观,显示信息 3. ……..
- XML:可扩展标记语言(eXtensible Markup Language)
- XML:传输和存储数据,焦点是数据的内容,传输信息
HTML:显示数据,焦点是数据的外观,显示信息
- XML:标签没有被定义需要自定义标签
HTML:使用的标签都是预定义的
- XML是独立于软件和硬件的信息传输工具
- XML用途:
- 把数据从HTML中分离,数据存储在独立的XML中,并确保修改底层数据不需要对HTML进行任何改变
- 简化数据共享
- 简化数据传输
- 简化平台变更,XML数据以文本格式存储
- XML用于创建新的互联网语言:XHTML等
- XML树结构
- XML声明
- XML必须包含根元素,是所有其他元素的父元素
- 树结构
1 | <bookstore> |
XML语法规则
必须有根元素
XML声明是可选的,如果存在需要放在文档的第一行
所有XML元素都必须有一个关闭标签
XML标签对大小写敏感,必须使用相同的大小写来编写打开标签和关闭标签
XML必须正确嵌套
属性值必须加引号
实体引用
< < less than > > greater than & & ampersand &apos ‘ apostrophe " “ quotation mark 注释:
在XML中,空格会保留,XML以LF存储换行
XML元素命名规则:
- 名称可以包含字母、数字以及其他的字符
- 名称不能以数字或者标点符号开始
- 名称不能以字母xml(或者XML、Xml等等)开始
- 名称不能包含空格
- 没有使用任何名称,没有保留的自此
- 最佳命名习惯
- 使用下划线:
- 名称简短简单:
- 避免”-“,”.”,”:”字符
- 使用下划线:
- XML元素是可扩展的
- XML的优势之一就是可以在不中断应用程序的情况下进行扩展
XML属性
属性必须加引号
XML元素vs.属性
1
2
3
4
5
6
7
8
9
10
11
12<person sex="female">
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
<person>
<sex>female</sex>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
<!--在XML中尽量避免使用属性,如果信息感觉起来很像数据就使用元素-->避免XML属性
- 属性不能包含多个值(元素可以)
- 属性不能包含树结构(元素可以)
- 属性不容易扩展(为未来的变化)
元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素
XML验证
XML查看
XML文件不会直接显示为HTML页面
XML查看时显示的都是原始的XML文件
XML文档不会携带有关如何显示数据的信息
使用CSS显示XML
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27CATALOG
{
background-color: #ffffff;
width: 100%;
}
CD
{
display: block;
margin-bottom: 30pt;
margin-left: 0;
}
TITLE
{
color: #FF0000;
font-size: 20pt;
}
ARTIST
{
color: #0000FF;
font-size: 20pt;
}
COUNTRY,PRICE,YEAR,COMPANY
{
display: block;
color: #000000;
margin-left: 20pt;
}XML
1
2
3
4
5
6
7
8
9
10
11
12
13
<CATALOG>
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
</CATALOG>使用XSLT显示XML(一般情况下不用CSS)
XMLHttpRequest对象
用于在后台与服务器交换数据
可以在不重新加载页面的情况下更新网页
在页面已加载后从服务器请求数据,接收数据
在后台向服务器发送数据
语法:xmlhttp = new XMLHttpRequest();
XML DOM
在HTML中显示XML数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<CATALOG>
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
<CD>
<TITLE>Hide your heart</TITLE>
<ARTIST>Bonnie Tyler</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>CBS Records</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1988</YEAR>
</CD>
</CATALOG>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28<html>
<body>
<script>
if(window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest();
}
else
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","1.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
document.write("<table border = '1'>");
var x = xmlDoc.getElementsByTagName("CD");
for(var i=0;i<x.length;i++){
document.write("<tr><td>")
document.write(x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue);
document.write("<td><td>")
document.write(x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue)
document.write("<td><tr>")
}
document.write("</table>")
</script>
</body>
</html>XML命名空间
XML命名空间提供避免元素命名冲突
使用前缀避免命名冲突
- <h:table>
- <f:table>
XML命名空间-xmlns属性
- 在xml中使用前缀时,一个所谓的用于前缀的命名空间必须被定义
- 命名空间时在元素的开始标签的xmlns属性中定义的
- 语法:xmlns:前缀=”URI”
- 统一资源标识符(URI,全称Uniform Resource ldentifier)
- 命名空间可以在它们被使用的元素中或者在XML跟元素中声明