一
HTML簡單易學又通用
二
正是由於這些缺點
三
這裡簡要列舉幾種主要的XML技術
DTD的主要功能是定義XML的內容模式
XML Schema的作用和DTD類似
·XML Schema內容模型是開放的
·DTD只能把內容類型定義為一個字符串
·XML Schema利用Namespaces將文檔中特殊的節點與Schema相聯系
作為一種Web語言
XML的一大特點就是內容與格式分離
CSS(層疊樣式表)也可以用在HTML和XML中
文檔對象模型(DOM)是一個與平台
DOM的目標就是為XML和HTML定義一個標准的編程接口
Namespaces是用URL加以區別的
四
PHP對XML提供了的強大的支持
boolean xml_parse(int parser
本函數用來解析 XML 格式的文件資料
int xml_parser_create(string [encoding]);
本函數用來初始化一個新的 XML 解析器
boolean xml_set_element_handler(int parser
本函數配置元素的標頭供 xml_parse() 函數使用
boolean xml_set_character_data_handler(int parser
本函數配置字符資料的標頭
int xml_get_error_code(int parser);
本函數可取得 XML 在處理時的錯誤代碼
string xml_error_string(int code);
本函數可取得 XML 在處理時的錯誤代碼
int xml_get_current_line_number(int parser);
本函數用來取得目前 XML 解析所正在處理的行號
boolean xml_parser_free(int parser);
本函數用來釋放目前 XML 解析所使用的內存
五
以下是用PHP
<?
//
//第一部分
//
/*********************************
*從一個文件中讀取XML的 *
*內容到字符串中 *
*********************************/
function read_file($filename)
{
//讀取文件
$lines=file($filename);
//變量$contents是存放文件內容的變量
$contents="";
while(list($key
{
$contents
}
return $contents;
}
/*********************************
*當PHP遇到一個XML的起始標記時 *
*調用
*顯示出XML的標記 *
*********************************/
function start_element($parser
{
//變量$depth存放標記的深度
global $depth;
//變量$spacer存放標記前所有的箭頭符號
$spacer="";
for ($i=
{
$spacer
}
//設置標記顯示時的顏色
if($depth[$parser]==
{
$font_color="red";
}
else
if($depth[$parser]==
{
$font_color="green";
}
else
{
$font_color="blue";
}
//設置標記顯示時的字體
$font_size=
if ($font_size<
{
$font_size=
}
//顯示標記
echo "<font size="
echo $spacer
if ($depth[$parser]<>
{
echo "
}
echo $name
echo "</font>";
$depth[$parser]++;
//如果是主標記就顯示紅色的水平線
if($depth[$parser]==
{
echo "<hr color=red size=
}
}
/*********************************
*當PHP遇到一個XML的結束標記時 *
*調用
*計數
*********************************/
function stop_element($parser
{
//變量$depth存放標記的深度
global $depth;
$depth[$parser]
//如果是主標記就顯示紅色的水平線
if($depth[$parser]==
{
echo "<hr color=red size=
}
}
/*********************************
*當PHP遇到一個XML的標記內容時 *
*調用
*顯示出標記的內容 *
*********************************
function char_data($parser
{
//變量$depth存放標記的深度
global $depth;
//顯示標記的內容
$data=trim($data);
if (strlen($data))
{
for ($i=
echo " ";
echo "<b>$data</b><br> ";
}
}
//
//第二部分
//
//要解析的XML文件的名字
$file="address
//讀取文件
$data=read_file($file);
// 產生解析器的實例
$parser = xml_parser_create();
// 設置處理函數
xml_set_element_handler($parser
xml_set_character_data_handler($parser
// 解析文件
if(!xml_parse($parser
{
//報錯
die(sPRintf("XML error: %s at line %d"
xml_error_string(xml_get_error_code($parser))
xml_get_current_line_number($parser)));
}
// 釋放解析器
xml_parser_free($parser);
?>
From:http://tw.wingwit.com/Article/program/PHP/201311/21339.html