XML和HTML区别
XML 被设计为传输和存储数据,其焦点是数据的内容。
HTML 被设计用来显示数据,其焦点是数据的外观。
HTML 旨在显示信息,而 XML 旨在传输信息
XML 使用简单的具有自我描述性的语法:
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2
3 <note>
4
5 <to>George</to>
6
7 <from>John</from>
8
9 <heading>Reminder</heading>
10
11 <body>Don't forget the meeting!</body>
12
13 </note>
所有元素均可拥有子元素:
1 <root>
2
3 <child>
4
5 <subchild>.....</subchild>
6
7 </child>
8
9 </root>
注意点
1. 在 XML 中,省略关闭标签是非法的。所有元素都必须有关闭标签
2. XML 的属性值须加引号,不过单引号和双引号均可使用
<person sex="female">
如果属性值本身包含双引号,那么有必要使用单引号包围它
<gangster name='George "Shotgun" Ziegler'>
或者可以使用实体引用:
<gangster name="George "Shotgun" Ziegler">
3. XML 标签对大小写敏感
4. XML 必须正确地嵌套
5. XML 文档必须有根元素
6. 在 XML 中,一些字符拥有特殊的意义
< < 小于
> > 大于
& & 和号
' ' 单引号
" " 引号
<message>if salary < 1000 then</message>
7. XML 元素必须遵循以下命名规则:
名称可以含字母、数字以及其他的字符
名称不能以数字或者标点符号开始
名称不能以字符 “xml”(或者 XML、Xml)开始
名称不能包含空格
8.在 XML 中,元素名称是由开发者定义的,当两个不同的文档使用相同的元素名时,就会发生命名冲突。
这个 XML 文档携带着某个表格中的信息:
1 <table>
2
3 <tr>
4
5 <td>Apples</td>
6
7 <td>Bananas</td>
8
9 </tr>
10
11 </table>
这个 XML 文档携带有关桌子的信息(一件家具):
1 <table>
2
3 <name>African Coffee Table</name>
4
5 <width>80</width>
6
7 <length>120</length>
8
9 </table>
使用前缀来避免命名冲突
此文档带有某个表格中的信息:
1 <h:table>
2
3 <h:tr>
4
5 <h:td>Apples</h:td>
6
7 <h:td>Bananas</h:td>
8
9 </h:tr>
10
11 </h:table>
此 XML 文档携带着有关一件家具的信息:
1 <f:table>
2
3 <f:name>African Coffee Table</f:name>
4
5 <f:width>80</f:width>
6
7 <f:length>120</f:length>
8
9 </f:table>
9. XML 元素 vs. 属性
在 XML 中,您应该尽量避免使用属性。如果信息感觉起来很像数据,那么请使用子元素吧
用 CSS 来格式化 XML 文档是有可能的。
XSLT 是首选的 XML 样式表语言。使用 XSLT 的方法之一是在浏览器显示 XML 文件之前,先把它转换为 HTML
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="simple.xsl"?>
<breakfast_menu>
<food>
<name>Belgian Waffles</name>
<price>$5.95</price>
<description>
two of our famous Belgian Waffles
</description>
<calories>650</calories>
</food>
</breakfast_menu>
第二行,<?xml-stylesheet type="text/xsl" href="simple.xsl"?>,把这个 XML 文件链接到 XSL 文件:
XMLHttpRequest
XMLHttpRequest 对象用于在后台与服务器交换数据
xmlhttp=new XMLHttpRequest(); //创建 XMLHttpRequest 对象
使用 XMLHttpRequest 对象从服务器取回 XML 信息
<html>
<head>
<script type="text/javascript">
var xmlhttp;
function loadXMLDoc(url)
{
xmlhttp=null;
if (window.XMLHttpRequest)
{// code for IE7, Firefox, Opera, etc.
xmlhttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlhttp!=null)
{
xmlhttp.onreadystatechange=state_Change; //onreadystatechange 是一个事件句柄。它的值 (state_Change) 是一个函数的名称,当 XMLHttpRequest 对象的状态发生改变时,会触发此函数
xmlhttp.open("GET",url,true); //"true"。该参数规定请求是否异步处理。True 表示脚本会在 send() 方法之后继续执行,而不等待来自服务器的响应。
xmlhttp.send(null);
}
else
{
alert("Your browser does not support XMLHTTP.");
}
}
function state_Change()
{
if (xmlhttp.readyState==4)
{// 4 = "loaded"
if (xmlhttp.status==200)
{// 200 = "OK"
document.getElementById('A1').innerHTML=xmlhttp.status;
document.getElementById('A2').innerHTML=xmlhttp.statusText;
document.getElementById('A3').innerHTML=xmlhttp.responseText;
}
else
{
alert("Problem retrieving XML data:" + xmlhttp.statusText);
}
}
}
</script>
</head>
<body>
<h2>Using the HttpRequest Object</h2>
<p><b>Status:</b>
<span id="A1"></span>
</p>
<p><b>Status text:</b>
<span id="A2"></span>
</p>
<p><b>Response:</b>
<br /><span id="A3"></span>
</p>
<button onclick="loadXMLDoc('/example/xdom/note.xml')">Get XML</button>
</body>
</html>