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 的返回值。以前,会忽略返回值,且解析也从不停止。