PHP XML解析器函数 xml_set_processing_instruction_handler函数

语法

xml_set_processing_instruction_handler(parser,handler)

为 parser 参数指定的 XML 解析器建立处理指令(PI)处理器函数。

参数

Parameter说明
parser这是必需的参数。XML 解析器的引用,用于建立处理指令(PI)处理器。
handler这是必需的参数。参数 handler 为表示函数名称的字符串,函数必须在为 parser 指定的解析器调用 xml_parse() 函数时已存在。

由 handler 参数命名的函数名必须接受三个参数:

参数说明
parser这是必需的参数。指定一个变量,该变量包含调用处理程序的XML解析器。
target这是必需的参数。它指定一个包含处理指令目标的变量。是一个PI 对象(PI target)。
data这是必需的参数。它指定一个包含处理指令数据的变量。 包含了 PI 数据。

PHP XML解析器函数 xml_set_processing_instruction_handler函数示例

XML代码

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet href="default.xsl" type="text/xml"?>

<message>
	 <to>User</to>
	 <from>Onitroad Team</from>
	 <heading>Welcome </heading>

	 <body>xml body</body>
</message>

php代码

<?php

$xml_parser=xml_parser_create();
function char($xml_parser,$xml_data)
{
echo $xml_data;

}
function pi_handler($xml_parser, $target, $xml_data)
{
echo "Target: $target<br />";

echo "Data: $xml_data<br />";
}
xml_set_character_data_handler($xml_parser,"char");
xml_set_processing_instruction_handler($xml_parser, "pi_handler");

$fp=fopen("test1.xml","r");
while ($xml_data=fread($fp,4096))
{
xml_parse($xml_parser,$xml_data,feof($fp)) or

die (sprintf("XML Error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}

xml_parser_free($xml_parser);
?>
日期:2020-06-02 22:15:40 来源:oir作者:oir