-
什么是XML
- XML是可擴展性標記語言
- 設計宗旨是為了傳輸數(shù)據(jù)
- XML標簽沒有被預定義砚殿,需要自行定義
-
XML的用途
- xml可以當做配置文件
- xml可以當小型數(shù)據(jù)庫
- xml是跨平臺的語言宗兼,用于各個語言之間的數(shù)據(jù)交互
-
XML語法規(guī)范
- 聲明一個處理指令<?xml version='1.0' encoding='utf-8'?>
- 文檔為樹狀結(jié)構(gòu)裂逐,只能有一個根目錄
- 標簽必須合法凳厢,標簽必須閉合(單雙標簽),大小寫一致肠阱,不能交叉师溅。
- 屬性必須有值,屬性值必須有引號
- 特殊符號使用符號實體(單引號'雙引號"空格 &符號&大于號<小于號>)
- 有特殊符號的大段內(nèi)容使用<![CDATA[內(nèi)容]]>表示
如下所示:
<?xml version='1.0' encoding='utf-8'?>
<student>
<student1>
<name>xiaoming</name>
<age>24</age>
<style hobby="girl" />
</student1>
<student2>
<name>xiaohong</name>
<age>24</age>
<style hobby="play" />
</student2>
</student>
-
javascript操作xml
-
創(chuàng)建空的xml對象
try{
xmlDoc=new ActiveXObject('Microsoft.XML');//IE創(chuàng)建xmlDoc
}catch(e){
try{
xmlDoc=document.implementation.createDocument('','',null);//opera,mozilla,firefox等創(chuàng)建xmlDoc
}catch(e){
alert(e.message);
}
}
-
加載xml文件
try{
xmlDoc.async=false;//關閉異步加載
xmlDoc.load=('xml_goods.xml');
//document.write('已經(jīng)加載好了');
}catch(e){
alert(e.message);
}
-
獲取xml文件的節(jié)點
var students = xmlDoc.getElementsByTagName('student1');//取到所有標簽為student1的節(jié)點
var student = students[0];//取到第一個studnet1
var studentnote = student.children;//取到第一個student的所有元素子節(jié)點
var name = studentnote[0].childNodes[0].nodeValue;//取到第一個節(jié)點name的第一個節(jié)點的值
window.alert(name);
-
用PHP操作xml
-
xmlDOM方法
實例化一個xmldom對象
$xmlDoc = new DOMDocument('1.0','utf-8');
- 加載xml文件
$xmlDoc->load('./student.xml');//加載本地xml文件
$xmlDoc->loadXML('xml字符串');//加載xml字符串
- 通過getElementsByTagName('')方法獲取DOMNodeList對
$xmlDoc->getElementsByTagName('name');
- 通過調(diào)用DOMNodeList里的item()方法得到DOMElement對象
$xmlDoc->getElementsByTagName('name')->item(0);
- 通過nodeValue屬性似踱,來獲取節(jié)點的值
$xmlDoc->getElementsByTagName('name')->item(0)->nodeValue;
-
simplexml方法
獲取xml對象
$simplexml = simplexml_load_file('./jing.xml');
//或者
$xml = file_get_contents('jing.xml'); //獲取字符串
$simplexml = simplexml_load_string($xml);
- 調(diào)用對象的屬性值從而獲得xml標簽值
$simplexml->stu[0]->sex;
作者:jingks
此為原創(chuàng)文章隅熙,請勿用在商業(yè)用途,轉(zhuǎn)載請標明作者核芽。