1. 程式人生 > >simpleXML方式解析XML

simpleXML方式解析XML

注意:

1,獲得屬性值 ,通過陣列下標的形式,陣列下標要大寫

2XML檔案中有英文字元和漢字的時候,需要使用 CDATA 來做特殊處理

語法:<![CDATA[     ]]>

<?php

class student{

public $name = 'xiaoer';

function __toString(){

return 'xiaoer';

}

}

$student = new student();

echo $student;

DOM方式和SAX方式的異同:

1,先將XML檔案在記憶體中解析成節點樹,如果XML檔案非常大,會佔用很大的記憶體

SAX:不需要在記憶體中生成節點樹,而是遇到標籤就解析

2SAX解析速度比DOM要快

3,如果XML結構有問題的話,DOM方式無法解析,因為無法在記憶體中生成節點樹;SAX會一直解析,知道錯誤的發生地

4DOM一般用於解析複雜的XMLSAX適用於解析資料量特別大的XML檔案

使用simpleXML解析XML檔案

php專門提供的一種簡單的操作XML檔案的物件

例項化simpleXML物件:

原理:

simpleXMLElement這個物件會將所有的XML的元素轉化成物件,相同的元素名轉化成物件的集合

任務:

按照simpleXMLElement格式去獲得  第三本書的作者:

foreach($books as $book){

echo $book->author;

}

訪問某一個節點:

1,訪問元素的屬性,通過陣列下標的形式

  $id = $books[0]['id'];

2,如果獲得的是一個物件的集合,foreach遍歷

3,如果要找具體的某一個元素 通過陣列索引

$first_book = $books[0];

foreach($books as $book){

echo $book->author;

echo $book->title;

}

//增加一個節點:

//我們可以把 $sxe 看作是文件的根節點

$new_book = $sxe ->addChild('book');

//在剛建立的book節點上 增加一個title 內容是 俠客行

$new_book ->addChild('title','俠客行');

//儲存

$sxe ->asXML('book3.xml');

刪除節點

Unset(刪除的節點)

$book = $sxe ->book[4];

unset($book);

修改節點

$sxe ->book[3]->author = '金庸';