XML笔记
1.XML全称eXtensible Markup Language,可扩展的标记语言。
2.XML是用存储数据、传输数据的,HTML是用来显示数据的。
3.XML没有预定义标签,需要自行定义标签。
4.XML和HTML是为了不同目的而设计的,XML为传输、存储数据而设计,其焦点是数据内容;HTML被设计用来显示数据的,其焦点是数据的外观(结构)。
5.XML必须有根元素,必须正确嵌套,区分大小写,有开有闭。
6.XML一些字符具有特殊的意义,如果把“<”放在XML元素中,解析器就会认为它是新元素的开始,这样就会产生XML错误,为避免这个错误,应用以个实体引用来代替“<”字符。
例:<message>if salary < 1000 then</message>
<message>if salary < 1000 then</message>
7.XML属性的问题:属性无法包含多重的值,元素可以;属性无法描述树形结构;属性不易扩展;属性难以阅读维护;
元数据(有关数据的数据)应存储为属性,数据本身应存储为元素。
8.PHP处理XML文件函数simplexml_load_file()从文件读取XMLObject对象;simple_load_string()从字符串读取XMLObject对象;
标准化XML数据$xml->asXML(),写入参数中文件$xml->asXML('memlist.xml')。
9.JS解析xml文件
例:php文件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="jquery/style/js/jquery-1.4.2.js"></script>
<title>XML parse</title>
<script type="text/javascript">
$(function()
{
try
{
xmlDOM=new ActiveXObject('Microsoft.XMLDOM');
}
catch(e)
{
try
{
xmlDOM=document.implementation.createDocument("","",null);
}
catch(e)
{
alert(e.message);
return false;
}
}
xmlDOM.async=false;
xmlDOM.load('memlist.xml');
$('#to').html(xmlDOM.getElementsByTagName('name')[1].childNodes[0].nodeValue);
$('#from').html(xmlDOM.getElementsByTagName('gender')[1].childNodes[0].nodeValue);
$('#message').html(xmlDOM.getElementsByTagName('age')[1].childNodes[0].nodeValue);
})
</script>
</head>
<body>
<h2>XML has be parsed by Javascript</h2>
<p><b>To:</b> <span id="to"></span><br />
<b>From:</b> <span id="from"></span><br />
<b>Message:</b> <span id="message"></span></p>
</body>
</html>
xml文件memlist.xml
<?xml version="1.0" encoding="utf-8"?>
<family>
<person>
<name>Tom</name>
<gender>male</gender>
<age>99</age>
</person>
<person>
<name>Jerry</name>
<gender>male</gender>
<age>5</age>
</person>
<person>
<name>Lucy</name>
<gender>female</gender>
<age>21</age>
</person>
</family>
10.JS中数组操作取得key,value
例:
var b=new Array('a','b','c','d');
for(var i in b)
{
alert(b[i]);
}