xml就不多解釋了,php也提供了操作xml的方法,php操作xml可以有多種方式如domdocment,simplexml,xmlwriter等其中最簡單的應該是simplexml了,這次就來說說simplexml怎麼讀取和解析xml檔案或字串
1. 產生xml字串和檔案
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php
header( "Content-type: text/html; charset=utf-8" );
$xml = new SimpleXMLElement('<?xml version= "1.0" encoding= "utf-8" ?><UsersInfo />');
$item = $xml ->addchild( "item" );
$item ->addchild( "name" , "冯绍峰" );
$item ->addchild( "age" , "30" );
$item2 = $xml ->addchild( "item" );
$item2 ->addchild( "name" , "潘玮柏" );
$item2 ->addchild( "age" , "29" );
$item2 ->addAttribute( "id" , "02" );
header( "Content-type: text/xml" );
echo $xml ->asXml();
$xml ->asXml( "student.xml" );
?>
|
登入後複製
產生xml最重要的就是addchild,addAttribute,asXml三個方法,如果只是單純產生xml檔的話那個header可以不要,下面是瀏覽器的顯示結果
#是不是很簡單呢
2.simplexml解析xml檔或字串
1 2 3 4 5 6 7 8 9 10 | <?php
header( "Content-type: text/html; charset=utf-8" );
$xml =simplexml_load_file( "UserInfo.xml" );
for ( $i =0; $i < count ( $xml ->children()); $i ++){
foreach ( $xml ->children()[ $i ] as $key => $value ) {
echo "$key:$value" . "<br/>" ;
}
}
?>
|
登入後複製
上面的方法適合解析xml文件,如果是xml字串就把simplexml_load_file改為simplexml_load_string就可以了,children用於取得根節點或子節點,取得的節點是一個陣列直接遍歷必要的時候加上過濾條件就可以了,以下是解析的結果
順便把我的xml檔貼出來
1 2 3 4 5 6 7 8 9 10 11 12 13 | <? xml version = "1.0" encoding = "UTF-8" ?>
< UsersInfo >
< item >
< name >潘玮柏</ name >
< address >上海市浦东新区</ address >
< song >快乐崇拜</ song >
</ item >
< item >
< name >蔡依林</ name >
< address >上海市徐汇区</ address >
< song >独占神话</ song >
</ item >
</ UsersInfo >
|
登入後複製
總的說來操作真的太簡潔了。
以上是PHP xml解析與生成之SimpleXML使用介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!