非常教程

Erlang 20参考手册

xmerl

xmerl_eventp

模块

[医]xmerl[医]事件

模块摘要

基于简单事件的xmerl前端[医]扫描流中XML文档的处理和SAX样式的解析。

描述

基于简单事件的xmerl前端[医]扫描流中XML文档的处理和SAX样式的解析。每个都包含更详细的xmerl设置。[医]用于使用自定义功能的扫描。

数据类型

option_list()

选项允许自定义扫描仪的行为。另见tutorial关于定制功能。

可能的备选办法是:

{acc_fun, Fun}

回调函数来积累实体的内容。

{continuation_fun, Fun} | {continuation_fun, Fun, ContinuationState}

回调函数,以决定如果扫描仪在文档完成之前运行到EOF中,应该做什么。

{event_fun, Fun} | {event_fun, Fun, EventState}

回调函数来处理扫描器事件。

{fetch_fun, Fun} | {fetch_fun, Fun, FetchState}

回调函数来获取外部资源。

{hook_fun, Fun} | {hook_fun, Fun, HookState}

回调函数来处理文档实体。

{close_fun, Fun}

当文档被完全解析时调用。

{rules, ReadFun, WriteFun, RulesState} | {rules, Rules}

解析时处理扫描程序信息的存储。

{user_state, UserState}

可从所有自定义函数访问全局状态变量

{fetch_path, PathList}

PathList是在获取文件时要搜索的目录列表。如果所讨论的文件不在获取中[医]路径时,URI将用作文件名。

{space, Flag}

%27保留%27%28默认%29以保留空格,%27正常化%27以累积连续空格并将其替换为一个空格。

{line, Line}

若要指定包含XML片段的文档中的扫描起始行,请执行以下操作。

{namespace_conformant, Flag}

控制是否作为符合命名空间的XML解析器行为,'false'(默认)不是'true'。

{validation, Flag}

控制是否作为验证XML解析器进行处理:“关闭”(默认)不验证,或者通过DTD验证“DTD”或通过XML架构验证“模式”。'false'和'true'选项已过时(即可能在未来的版本中删除),如果使用'false'等于'off'且'true'等于'dtd'。

{schemaLocation, [{Namespace,Link}|...]}

显式地告诉要使用哪些XML架构文档来验证XML文档。与{validation,schema}选择。

{quiet, Flag}

如果xmerl应该安静地行为并且不将任何信息输出到标准输出(默认为“false”),则设置为'true'。

{doctype_DTD, DTD}

允许在XML文档中不可用时指定DTD名称。此选项仅与{validation,'dtd'选件一起使用。

{xmlbase, Dir}

XMLBase目录。如果使用字符串/1,则默认值为当前目录。如果使用file/1,默认为给定文件的目录。

{encoding, Enc}

设置默认字符集使用%28默认UTF-8%29。只有当XML声明没有显式地给出此字符集时,才使用此字符集。

{document, Flag}

如果xmerl应该将完整的XML文档作为xmlDocument记录返回(默认为“false”),则设置为'true'。

{comments, Flag}

如果xmerl应该跳过注释,则设置为'false',否则它们将作为xmlComment记录返回(默认为'true')。

{default_attrs, Flag}

如果xmerl应该添加到缺少具有定义的默认值的属性的元素(默认值为“false”),则设置为'true'。

xmlElement()= #xmlElement {}

出口

file_sax(Fname::string(), CallBackModule::atom(), UserState, Options::option_list()) -> NewUserState

包含XML文档的解析文件,SAX样式。调用XML解析器的包装器xmerl_scan带着hook_fun用于在解析实体之后直接使用xmerl导出功能。

stream(Fname::string(), Options::option_list()) ->xmlElement()

将包含XML文档的文件解析为流,DOM样式。包装器的XML解析器的调用xmerl_scancontinuation_fun用于处理XML数据流。需要注意的是continuation_funacc_funfetch_funrulesclose_fun选项不能被用户在使用此解析器定义。

stream_sax(Fname, CallBack::CallBackModule, UserState, Options) ->xmlElement()

类型

将包含XML文档的文件解析为流,SAX样式。包装器的XML解析器的调用xmerl_scancontinuation_fun用于处理XML数据流。需要注意的是continuation_funacc_funfetch_funruleshook_funclose_funuser_state不能使用该解析器用户定义的选项。

string_sax(String::list(), CallBackModule::atom(), UserState, Options::option_list()) ->xmlElement()

包含XML文档的解析文件,SAX样式。调用XML解析器的包装器xmerl_scan带着hook_fun用于在解析实体之后直接使用xmerl导出功能。

Erlang 20

Erlang 是一种通用的面向并发的编程语言,可应付大规模开发活动的程序设计语言和运行环境。

主页 https://www.erlang.org/
源码 https://github.com/erlang/otp
版本 20
发布版本 20.1