PHP xml_set_unparsed_entity_decl_handler函数示例
<?php
$xml_parser=xml_parser_create();
function char($xml_parser,$data)
{
echo $data;
}
function unparsed_ent_handler($xml_parser,$entname,$base,$sysID,$pubID,$notname)
{
print "$entname<br />";
print "$sysID<br />";
print "$pubID<br />";
print "$notname<br />";
}
xml_set_character_data_handler($xml_parser,"char");
xml_set_unparsed_entity_decl_handler($xml_parser,
"unparsed_ent_handler");
$fp=fopen("test1.xml","r");
while ($data=fread($fp,4096))
{
xml_parse($xml_parser,$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);
?>
语法
xml_set_unparsed_entity_decl_handler(parser,handler)
为 parser 参数指定的 XML 解析器建立未解析实体定义声明处理器函数。
当 XML 解析器遇到如下含有 NDATA 声明的外部实体定义声明时,该 handler 处理器将被调用:
<!ENTITY <parameter>name</parameter> {<parameter>publicId</parameter> | <parameter>systemId</parameter>}
NDATA <parameter>notationName</parameter>
参数
| Parameter | 说明 |
|---|---|
| parser | 这是必需的参数。它被指定用于XML解析器。 ,用于建立未解析实体定义声明处理器。 |
| handler | 这是必需的参数。它指定了当解析器找到一个表示法声明时要调用的函数。 |
由 handler 参数命名的xml_set_unparsed_entity_decl_handler函数必须接受六个参数:
| 参数 | 说明 |
|---|---|
| parser | 这是必需的参数。指定一个变量,该变量包含调用处理程序的XML解析器。,用于建立未解析实体定义声明处理器。 |
| name | 这是必需的参数。它可以指定包含实体名称的变量。 |
| base | 这是必需的参数。它指定用于解析实体的系统标识的基础。现在,这总是空的。 |
| system_id | 这是必需的参数。可以指定一个包含实体的系统标识符的变量。 |
| public_id | 这是必需的参数。它可以指定一个包含实体的公共标识符的变量。 |
| notation | 这是必需的参数。它是一个变量,包含标识实体数据类型的符号。 |
日期:2020-06-02 22:15:40 来源:oir作者:oir
