ปัญหามีอยู่ว่าเวลาเจอ Tag ถึงแม้ว่าข้างในไม่มีข้อความเลย ใช้ PHP ดักด้วยคำสั่ง strlen ไว้ ก็ยังจะทำงานอีกจะแก้ไงดีครับ
class.xml
<?xml version="1.0" encoding="windows-874"?>
<mybook>
	<book>
		<name>C Pro</name>
		<name1>C Pro1</name1>
		<name2>C Pro2</name2>
	</book>
	<book>
		<name>C Pro</name>
		<name1>C Pro1</name1>
		<name2>C Pro2</name2>
	</book>
</mybook>
rss.php
<?php
	$arr=array();
	$count=0;
	$block="BOOK";
	$key="";
	$value="";
	function startp($parser,$name,$att){
		global $key;
		$key=$name;
		echo "open ".$key."<br>";
	}
	function endp($parser,$name){
		global $count;
		global $block;
		echo "close ".$name."<br>";
		if($name==$block){
			$count=$count+1;
		}
		echo "count ".$count."<br>";
	}
	function dpage($parser,$data){
		global $count;
		global $value;
		global $key;
		global $arr;
		if(strlen($data)>1){
			echo "ทำ......".$key."ใส่ค่า".$data."<br>";
			$value=$data;
			$arr[$count]["$key"]=$value;
		}
	}
	$p=xml_parser_create();
	xml_set_element_handler($p,"startp","endp");
	xml_set_character_data_handler($p,"dpage");
	$fp=fopen("class.xml","r");
	while($data=fread($fp,4096)){
		xml_parse($p,$data,feof($fp));
	}
?>
<?
	print_r($arr);
?>
หน้าจอผลลัพธ์
open MYBOOK
ทำ......MYBOOKใส่ค่า 
open BOOK
ทำ......BOOKใส่ค่า 
open NAME
ทำ......NAMEใส่ค่าC Pro
close NAME
count 0
ทำ......NAMEใส่ค่า 
open NAME1
ทำ......NAME1ใส่ค่าC Pro1
close NAME1
count 0
ทำ......NAME1ใส่ค่า 
open NAME2
ทำ......NAME2ใส่ค่าC Pro2
close NAME2
count 0
ทำ......NAME2ใส่ค่า 
close BOOK
count 1
ทำ......NAME2ใส่ค่า 
open BOOK
ทำ......BOOKใส่ค่า 
open NAME
ทำ......NAMEใส่ค่าC Pro
close NAME
count 1
ทำ......NAMEใส่ค่า 
open NAME1
ทำ......NAME1ใส่ค่าC Pro1
close NAME1
count 1
ทำ......NAME1ใส่ค่า 
open NAME2
ทำ......NAME2ใส่ค่าC Pro2
close NAME2
count 1
ทำ......NAME2ใส่ค่า 
close BOOK
count 2
close MYBOOK
count 2
Array ( [0] => Array ( [MYBOOK] => [BOOK] => [NAME] => [NAME1] => [NAME2] => ) [1] => Array ( [NAME2] => [BOOK] => [NAME] => [NAME1] => ) )
ที่ได้ค่า เป็น 0 เพราะถึงไม่เจอตัวอักษร แต่มองแล้ว มันมากกว่า1 ก็ ทำการเพิ่มค่า array เลยออกมาเป็น ว่าง แก้ไงดี
Tag : PHP, HTML/CSS, JavaScript