xml_set_external_entity_ref_handler
设置外部实体引用处理程序
&reftitle.description;
truexml_set_external_entity_ref_handler
XMLParserparser
callablestringnullhandler
为 XML 解析器 parser 设置外部实体引用处理函数。
&reftitle.parameters;
&xml.parser.param;
handler
&xml.handler.description;
处理程序的签名必须是:
boolhandler
XMLParserparser
stringopen_entity_names
stringfalsebase
stringsystem_id
stringfalsepublic_id
&xml.handler.parser.param;
open_entity_names
为该实体的解析开放的实体名列表(包括被指向的实体名),这些实体名由空格隔开。
base
这个参数是解析外部实体的系统标识符(system_id)的基础。
system_id
在实体定义声明中指定的系统标识符。
public_id
在实体定义声明中指定的公共标识符,如果未指定任何标识符,则该字符串为空。公共标识符中的空格将按照 XML 的要求被正常化。
如果实体已经处理,则处理程序应返回 &true;,否则返回 &false;。当返回 &false; 时,XML
解析器将停止解析并且 xml_get_error_code 将返回
XML_ERROR_EXTERNAL_ENTITY_HANDLING。
&reftitle.returnvalues;
&return.true.always;
&reftitle.changelog;
&Version;
&Description;
&xml.changelog.handler-param;
&xml.changelog.parser-param;
7.3.0
如果扩展是针对 libxml 构建的,则不再忽略 handler 的返回值。以前,会忽略返回值,且解析也从不停止。