日期:2012-12-06 浏览次数:20441 次
}
}
// destroy parser
xml_parser_free($xp),
// opening tag handler
function elementBegin($parser, $name, $attributes)
{
global $currentTag, $flag,
// export the name of the current tag to the global scope
$currentTag = $name,
// if within an item block, set a flag
if ($name == "ITEM")
{
$flag = 1,
}
}
// closing tag handler
function elementEnd($parser, $name)
{
global $currentTag, $flag,
$currentTag = "",
// if exiting an item block, print a line and reset the flag
if ($name == "ITEM")
{
echo "<hr>",
$flag = 0,
}
}
// character data handler
function characterData($parser, $data)
{
global $currentTag, $flag,
// if within an item block, print item data
if (($currentTag == "TITLE" || $currentTag == "LINK" ||
$currentTag ==
"DESCRIPTION") && $flag == 1)
{
echo "$currentTag: $data <br>",
}
}
?>
看不明白? 别着急,后面将会作出解释。
5)捕获旗标
这段脚本首先要做的是设定一些全局变量:
// XML file
$file = "fm-releases.rdf",
// set up some variables for use by the parser
$currentTag = "",
$flag = "",
$currentTag变量保存是分析器当前处理的元素的名称——你很快就会看到为什么需要它。
因为我的最终目的是显示频道中的每一个单独的条目(item),并且带有链结。另外还要知道分析器什么时候退出了<channel></channel>区块,什么时候又进入了文档的