php讀取xml有關問題
來源:互聯網
上載者:User
php讀取xml問題
在網上下了個例子,代碼如下但是運行卻沒有顯示,只顯示了 "名字: "後面就什麼也沒有了,是不是哪裡還需要配置一下呀,請大家幫忙解決!!
$parser = xml_parser_create(); //建立一個parser編輯器
xml_set_element_handler($parser, "startElement ", "endElement ");//設立標籤觸發時的相應函數 這裡分別為startElement和endElenment
xml_set_character_data_handler($parser, "characterData ");//設立資料讀取時的相應函數
$xml_file= "1.xml ";//指定所要讀取的xml檔案,可以是url
$filehandler = fopen($xml_file, "r ");//開啟檔案
while ($data = fread($filehandler, 4096))
{
xml_parse($parser, $data, feof($filehandler));
}//每次取出4096個位元組進行處理
fclose($filehandler);
xml_parser_free($parser);//關閉和釋放parser解析器
$name=false;
$position=false;
function startElement($parser_instance, $element_name, $attrs) //起始標籤事件的函數
{
global $name,$position;
if($element_name== "NAME ")
{
$name=true;
$position=false;
echo "名字: ";
}
if($element_name== "POSITION ")
{$name=false;
$position=true;
echo "職位: ";
}
}
function characterData($parser_instance, $xml_data) //讀取資料時的函數
{
global $name,$position;
if($position)
echo $xml_data. "
";
if($name)
echo $xml_data. "
";
}
function endElement($parser_instance, $element_name) //結束標籤事件的函數
{
global $name,$position;
$name=false;
$position=false;
}
?>
xml檔案代碼如下:
張三
經理
李四
助理
------解決方案--------------------
有個加過密的xml類,可以把任何xml讀成數組的,裡面也是用PHP內建函數實現的。要發給你
------解決方案--------------------
估摸著你的XML是GB2312編碼的,XML預設是UTF-8的。你把你的XML檔案改成UTF8的試試。
------解決方案--------------------
源檔案是對的,在PHP4下面測試是正確的
------解決方案--------------------
編碼是utf-8的。不知在gb2312環境有沒影響
------解決方案--------------------
當然有影響,如果是utf-8的,你想用在gb2312下,最好轉碼
------解決方案--------------------