以前上課老師講的資料 XML 介紹

 


XML 介紹
可延伸標示語言(eXtensible Markup Language)  讓人方便閱讀,又容易使電腦讀取
 整份文件可以視為一個實體文件(Entity)
 其結構為樹狀結構,由元素與標籤組成
 起始標籤可以有屬性 (attribute)
<?xml version="1.0" encoding="utf-8"?>//XML 宣告
 <namecard>
<name>Learry Lee</name> <tel>04-23456789</tel>
<email href="mailto:learry@gmail.com"/>
</namecard>




PHP SimpleXML
$xmlData =
"<?xml version='1.0' encoding='UTF-8'?> <note>
<to>John</to>
<from>Mary</from>
<title>Reminder</title>
<body>'Don't forget me this weekend!</body>
</note>";
$xml = simplexml_load_string($xmlData); echo $xml->to;
echo $xml->from;
echo $xml->title;
echo $xml->body;




轉換錯誤檢查
libxml_use_internal_errors(true);
$xmlData =
"<?xml version='1.0' encoding='UTF-8'?> <note>
<to>John</to>
<from>Mary</from>
<title>Reminder</wrongtitle>
<body>'Don't forget me this weekend!</wrongbody>
</note>";
$xml = simplexml_load_string($xmlData);
if ($xml == false) {
echo "Fail to transfer XML:"; foreach(libxml_get_errors() as $error) {
        echo "<br>". $error->message;
    }
} else {
echo $xml->title;
}




從檔案讀取XML並顯示
$xml=simplexml_load_file("books.xml");
echo $xml->book[0]->title.'<br>'; echo $xml->book[0]->author.'<br>';
foreach($xml->children() as $book) { echo $book->title.'<br>';
echo $book->author.'<br>';
}




讀取XML 屬性
$xml=simplexml_load_file("books.xml");
echo $xml->book[0]['category'].'<br>'; echo $xml->book[0]->title['lang'].'<br>';
foreach($xml->children() as $book) { echo $book['category'].'<br>'; echo $book->title['lang'].'<br>';
}




陣列轉換為XML
function arrayToXml( $data, &$xml ) { foreach( $data as $key => $value ) {
if( is_array($value) ) {
$subnode = $xml->addChild($key); arrayToXml($value, $subnode);
       } else {
           $xml->addChild($key,$value);
} }
}
$xml = new SimpleXMLElement('<Root/>'); arrayToXml($data, $xml);
#xml->asXML;

留言

此網誌的熱門文章