From 1b148ed6fdd4a14078945fac9cbbef32ded519bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AD=94=E7=8E=8B=E5=8D=B7=E5=AD=90?= Date: Wed, 11 Oct 2023 17:39:51 +0800 Subject: [PATCH] Update xml --- language-snippets.ent | 53 ++++++++++++++-- reference/xml/book.xml | 18 +++--- reference/xml/case-folding.xml | 6 +- reference/xml/encoding.xml | 8 +-- reference/xml/eventhandlers.xml | 18 +++--- reference/xml/examples.xml | 15 +++-- .../xml/functions/xml-parser-get-option.xml | 12 +++- .../xml/functions/xml-parser-set-option.xml | 20 +++--- .../xml-set-character-data-handler.xml | 38 +++--------- .../xml/functions/xml-set-default-handler.xml | 36 +++-------- .../xml/functions/xml-set-element-handler.xml | 61 +++++++------------ .../xml-set-end-namespace-decl-handler.xml | 37 +++-------- .../xml-set-external-entity-ref-handler.xml | 45 +++++--------- .../xml-set-notation-decl-handler.xml | 42 +++---------- reference/xml/functions/xml-set-object.xml | 12 +--- ...xml-set-processing-instruction-handler.xml | 56 +++++++---------- .../xml-set-start-namespace-decl-handler.xml | 44 +++---------- .../xml-set-unparsed-entity-decl-handler.xml | 40 +++--------- reference/xml/setup.xml | 9 ++- 19 files changed, 215 insertions(+), 355 deletions(-) diff --git a/language-snippets.ent b/language-snippets.ent index 709eee81ea..b18605d577 100644 --- a/language-snippets.ent +++ b/language-snippets.ent @@ -1,6 +1,6 @@ - + @@ -353,6 +353,16 @@ xmlns="http://docbook.org/ns/docbook">此函数自 PHP 8.2.0 起弃用。强烈建议不要应用此函数。'> +本特性已自 PHP 8.3.0 +起废弃。强烈建议不要使用本特性。'> + + +此函数自 PHP 8.3.0 +起弃用。强烈建议不要应用此函数。'> + + 将肯定会在未来被移除。'> @@ -1571,6 +1581,11 @@ It is strongly recommended to avoid timezone abbreviations. ]]>'> + + + Bitwise OR + of the libxml option constants. +'> @@ -2521,10 +2536,10 @@ PHP 5.1.0 或 PHP 5.0 的特别修补版本,并需启用线程安全。更多 此扩展需要 -libxml PHP 扩展。这表示需要使用 -,或在 PHP 7.4 之前的版本中使用 +libxml PHP 扩展。这意味着需要传递 +,或在 PHP 7.4 之前的版本中传递 , -尽管这将隐式完成因为 libxml 是缺省开启的。 +尽管这将默默完成因为 libxml 是默认开启的。 '> @@ -4243,6 +4258,36 @@ xmlns="http://docbook.org/ns/docbook">This function has been REMOVED in PECL uopz 5.0.0.'> + + parser + + + XML 解析器。 + + +'> + + + 如果传递 &null; 或空字符串,处理程序将重置为其默认状态。 + + + 如果 handlercallable,设置的 callable 将作为处理程序。 + + + 如果 handlerstring,它可以是 xml_set_object + 设置的对象的方法名称。 +'> + + + + + parser + + + XML 解析器调用的处理程序。 + + +'> 8.0.0 diff --git a/reference/xml/book.xml b/reference/xml/book.xml index 427325d344..c71397bc80 100644 --- a/reference/xml/book.xml +++ b/reference/xml/book.xml @@ -9,22 +9,20 @@ &reftitle.intro; - XML(可扩展标记语言,eXtensible Markup Language)是一种在互联网上用于结构化文档交互的数据格式。 - 它是互联网协会(W3C)定义的一个标准。与 XML 及其相关技术的信息可访问 + XML(可扩展标记语言,英文:eXtensible Markup Language)是一种在互联网上用于结构化文档交互的数据格式。 + 它是互联网协会(W3C)定义的标准。与 XML 及其相关技术的信息可访问 &url.xml;。 此 PHP 扩展实现支持 James Clark 使用 PHP 编写的 - expat。 - 此工具包可解析(但不能验证)XML 文档。它支持 PHP 所提供的 3 种字符编码: - US-ASCIIISO-8859-1UTF-8。不支持 UTF-16。 + expat。此工具包可解析(但不能验证)XML 文档。它支持 PHP 所提供的 3 + 种字符编码:US-ASCIIISO-8859-1 + 和 UTF-8。不支持 UTF-16 - 此扩展可 - 创建 XML 解析器 - 并为不同的 XML 事件定义 处理程序(handler)。 - 每个 XML 解析器还存在少数可以调节的 - 参数。 + 此扩展可创建 XML 解析器并为不同的 XML + 事件定义 处理程序。每个 XML 解析器还存在少数可以调节的参数。 diff --git a/reference/xml/case-folding.xml b/reference/xml/case-folding.xml index a267159e93..b29e374f7a 100644 --- a/reference/xml/case-folding.xml +++ b/reference/xml/case-folding.xml @@ -2,10 +2,10 @@
- Case Folding(大写转换) + 大写转换 - 元素处理函数可取得元素名称转换为 case-folded(大写字母)形式。 - Case-folding 被定义为“将非大写字母替换为相对应的大写字母的字符串操作”。换句话说,在 + 元素处理函数可取得元素名称转换为 case-folded(大写字母)形式。定义 + Case-folding 为“将非大写字母替换为相对应的大写字母的字符串操作”。换句话说,在 XML 中,case-folding 就是转换为大写。 diff --git a/reference/xml/encoding.xml b/reference/xml/encoding.xml index 6db15057b2..f361c04b0c 100644 --- a/reference/xml/encoding.xml +++ b/reference/xml/encoding.xml @@ -17,16 +17,14 @@ 21)的位(bit), 编码为 1 到 4 个字节。PHP 使用的默认原始编码是 ISO-8859-1 - 当 PHP 将数据传给 XML 处理函数时,目标编码就完成了。 - 在创建 XML 解析器时,目标编码被设定为与原始编码相同,但可任意修改。 - 目标编码会影响字符数据及标签名,与处理指令目标。 + 当 PHP 将数据传给 XML 处理函数时,目标编码就完成了。在创建 XML + 解析器时,目标编码被设定为与原始编码相同,但可任意修改。目标编码会影响字符数据及标签名,与处理指令目标。 如 XML 解析器遇到原始编码所能表示的范围之外的字符时,会返回一个错误。 - 如 PHP 遇到在被解析的 XML 文档中不能用所指定的目标编码表示的字符时, - 这个问题字符会被“降级”。通常来说,就是那些字符会被替换成问号(?)。 + 如 PHP 遇到在被解析的 XML 文档中不能用所指定的目标编码表示的字符时,这个问题字符会被“降级”。通常来说,就是那些字符会被替换成问号(?)。
diff --git a/reference/xml/eventhandlers.xml b/reference/xml/eventhandlers.xml index 2f3e82dc5e..d04e595bde 100644 --- a/reference/xml/eventhandlers.xml +++ b/reference/xml/eventhandlers.xml @@ -18,8 +18,7 @@ xml_set_element_handler - 当 XML 解析器遇到开始或结束标签时,会触发元素事件。 - 开始标签和结束标签有不同的处理程序。 + 当 XML 解析器遇到开始或结束标签时,会触发元素事件。开始标签和结束标签有不同的处理程序。 @@ -27,8 +26,8 @@ xml_set_character_data_handler - 字符数据范指 XML 文档中所有非标记的内容,包括标签之间的空格。 - 注意,XML 解析器不会添加或删除任何空格,由应用程序(你)来判断空格是否有意义。 + 字符数据范指 XML 文档中所有非标记的内容,包括标签之间的空格。注意,XML + 解析器不会添加或删除任何空格,由应用程序(你)来判断空格是否有意义。 @@ -36,17 +35,14 @@ xml_set_processing_instruction_handler - PHP 程序员必须熟练掌握处理指令(PI)。<?php ?>是处理指令, - 其中php被称为“处理指令对象”。 - 除所有以“XML”开头的处理指令对象是系统保留的外, - 其他的处理函数均是由应用程序指定的。 + PHP 程序员必须熟练掌握处理指令(PI)。<?php ?>是处理指令,其中 php + 被称为“处理指令对象”。除所有以“XML”开头的处理指令对象是系统保留的外,其他的处理函数均是由应用程序指定的。 xml_set_default_handler - 不执行其他处理函数,则会执行缺省的处理函数。 - 在缺省的处理函数中可取得如 XML 和文档类型声明等信息。 + 不执行其他处理函数,则会执行默认的处理函数。在默认的处理函数中可取得如 XML 和文档类型声明等信息。 @@ -88,7 +84,7 @@ xml_set_end_namespace_decl_handler - 在命名空间声明的结束处调用此处理程序。请注意,此事件不是由 not 触发的。 + 在命名空间声明的结束处调用此处理程序。请注意,此事件不是由 libXML 触发的。 diff --git a/reference/xml/examples.xml b/reference/xml/examples.xml index ec95fddda6..16ccb3a7e4 100644 --- a/reference/xml/examples.xml +++ b/reference/xml/examples.xml @@ -59,9 +59,9 @@ xml_parser_free($xml_parser); 将 XML 映射为 HTML - 此示例直接地将 XML 标签映射为 HTML 标签。 - 在“map_array”中未找到的元素将被忽略。 - 当然,此示例只针对特定的 XML 文档类型起作用。 + 此示例直接地将 XML 标签映射为 HTML + 标签。在“map_array”中未找到的元素将被忽略。当然,此示例只针对特定的 + XML 文档类型起作用。 XML 外部实体示例 - 此示例用于加亮 XML 代码。举例说明如何使用外部实体引用来包含和解析其他文档, - 及处理指令是如何被处理的,及判断处理指令所包含代码是否“可信任”的一种方法 + 此示例用于加亮 XML 代码。举例说明如何使用外部实体引用来包含和解析其他文档,及处理指令是如何被处理的,及判断处理指令所包含代码是否“可信任”的一种方法 - 用于此示例的 XML 文档位于此示例的下方(xmltest.xml 和 - xmltest2.xml)。 + 用于此示例的 XML 文档位于此示例的下方(xmltest.xml 和 + xmltest2.xml)。 @@ -299,7 +298,7 @@ xml_parser_free($xml_parser); - 此文件包含在 xmltest.xml 中: + 此文件包含在 xmltest.xml 中: xmltest2.xml diff --git a/reference/xml/functions/xml-parser-get-option.xml b/reference/xml/functions/xml-parser-get-option.xml index dc806b43ec..51c7060631 100644 --- a/reference/xml/functions/xml-parser-get-option.xml +++ b/reference/xml/functions/xml-parser-get-option.xml @@ -1,6 +1,6 @@ - + @@ -11,7 +11,7 @@ &reftitle.description; - stringintxml_parser_get_option + stringintboolxml_parser_get_option XMLParserparser intoption @@ -48,7 +48,7 @@ &reftitle.returnvalues; - 如果 parser 没有指向有效的解析器,该函数将返回 &false;。否则将返回指定选项的值。 + 返回选项的值。 @@ -74,6 +74,12 @@ + + 8.3.0 + + 此函数为 bool 选项返回 bool 值。 + + &xml.changelog.parser-param; 8.0.0 diff --git a/reference/xml/functions/xml-parser-set-option.xml b/reference/xml/functions/xml-parser-set-option.xml index de23393aa8..e65a358c8a 100644 --- a/reference/xml/functions/xml-parser-set-option.xml +++ b/reference/xml/functions/xml-parser-set-option.xml @@ -1,6 +1,6 @@ - + @@ -14,7 +14,7 @@ boolxml_parser_set_option XMLParserparser intoption - stringintvalue + stringintboolvalue 在 XML 解析器中设置选项。 @@ -54,9 +54,9 @@ XML_OPTION_CASE_FOLDING - integer + bool - 控制是否为此 XML 解析器启用大小写折叠。默认启用。 + 控制是否为此 XML 解析器启用大写转换。默认启用。 @@ -68,7 +68,7 @@ XML_OPTION_SKIP_WHITE - integer + bool 是否略过由空白字符组成的值。 @@ -102,8 +102,7 @@ &reftitle.returnvalues; - 如果 parser 没有指向有效的解析器或者 option 无法设置,该函数将返回 - &false;。否则设置选项并返回 &true;。 + 成功时返回 &true;,失败时返回 &false;。 @@ -129,6 +128,13 @@ + + 8.3.0 + + value 参数现在也接受 bool。选项 XML_OPTION_CASE_FOLDING 和 + XML_OPTION_SKIP_WHITE 现在是 bool 选项。 + + &xml.changelog.parser-param; 8.0.0 diff --git a/reference/xml/functions/xml-set-character-data-handler.xml b/reference/xml/functions/xml-set-character-data-handler.xml index eb4cb12e3b..7c4717cc60 100644 --- a/reference/xml/functions/xml-set-character-data-handler.xml +++ b/reference/xml/functions/xml-set-character-data-handler.xml @@ -1,6 +1,6 @@ - + @@ -24,55 +24,33 @@ &reftitle.parameters; - - parser - - - XML 解析器的引用,用于建立字符数据处理器。 - - - + &xml.parser.param; handler + &xml.handler.description; - handler 为表示一个函数名称的字符串,该函数必须在为 parser 指定的解析器调用 xml_parse 函数时已存在。 - - - 由 handler 参数命名的函数名必须接受两个参数: + 处理程序的签名必须是: - handler + voidhandler XMLParserparser stringdata - - parser - - - 第一个参数 parser 为指向要调用处理器的 XML 解析器的指针。 - - - + &xml.handler.parser.param; data - 第二个参数 data 为包含有字符数据的字符串。 + 字符串格式的字符数据。 - Character data handler is called for every piece of a text in the XML - document. It can be called multiple times inside each fragment (e.g. - for non-ASCII strings). - - - 如果处理器函数名被设置为空字符串或者 &false;,则该有问题的处理器将被屏蔽。 + XML 文档的每段文字都会调用字符数据处理程序。可以在每个片段内多次调用(比如非 ASCII 字符串)。 - ¬e.func-callback; diff --git a/reference/xml/functions/xml-set-default-handler.xml b/reference/xml/functions/xml-set-default-handler.xml index aa03bcb0f9..786179b4b8 100644 --- a/reference/xml/functions/xml-set-default-handler.xml +++ b/reference/xml/functions/xml-set-default-handler.xml @@ -1,6 +1,6 @@ - + @@ -24,54 +24,32 @@ &reftitle.parameters; - - parser - - - XML 解析器的引用,用于建立默认处理函数。 - - - + &xml.parser.param; handler + &xml.handler.description; - handler 为表示一个函数名称的字符串,该函数必须在为 parser 指定的解析器调用 xml_parse 函数时已存在。 - - - 由 handler 参数命名的函数名必须接受两个参数: + 处理程序的签名必须是: - handler + voidhandler XMLParserparser stringdata - - - parser - - - - 第一个参数 parser 为指向要调用处理程序的 XML 解析器的指针。 - - - + &xml.handler.parser.param; data - 第二个参数 data 为包含有字符数据的字符串。其内容可以是 XML 声明、文档类型声明、实体名或者其它没有已存在处理程序的地数据。 + data 包含字符数据。可以是 XML 声明、文档类型声明、实体名或者其它没有已存在处理程序的数据。 - - 如果处理程序名被设置为空字符串或者 &false;,则该有问题的处理程序将被屏蔽。 - - ¬e.func-callback; diff --git a/reference/xml/functions/xml-set-element-handler.xml b/reference/xml/functions/xml-set-element-handler.xml index 66fef2fd01..ba4b3d53b5 100644 --- a/reference/xml/functions/xml-set-element-handler.xml +++ b/reference/xml/functions/xml-set-element-handler.xml @@ -1,6 +1,6 @@ - + @@ -17,7 +17,10 @@ callableend_handler - 为 parser 参数指定的 XML 解析器建立元素处理函数。参数 start_handlerend_handler 为表示函数名称的字符串,这些函数必须在为 parser 指定的解析器调用 xml_parse 函数时已存在。 + 为 parser 参数指定的 XML 解析器建立元素处理函数。 + + + 当打开新的 XML 元素时调用 start_handler,当关闭 XML 元素时调用 end_handler @@ -25,90 +28,68 @@ &reftitle.parameters; - - parser - - - 指向 XML 解析器,用于建立起始和终止元素处理程序。 - - - + &xml.parser.param; start_handler + &xml.handler.description; - 由 start_handler 参数命名的函数名必须接受三个参数: + 处理程序的签名必须是: - start_element_handler + voidstart_element_handler XMLParserparser stringname - arrayattribs + arrayattributes - - parser - - - 第一个参数 parser 为指向要调用处理程序的 XML 解析器的指针。 - - - + &xml.handler.parser.param; name - 第二个参数 name,包含调用此处理程序的元素名称。如果大小写折叠(case-folding)对该解析器有效,元素名将用大写字母表示。 + 包含调用此处理程序的元素名称。如果大写转换对该解析器有效,元素名将用大写字母表示。 - attribs + attributes - 第三个参数 attribs 为一个包含有对应元素的属性的数组(如果该元素有属性)。数组元素的下标为属性名,元素的值即为属性的值。属性名将以和元素名同样的标准进行大小写折叠(case-folded),其值进行大小写折叠。 + 带有元素属性的关联数组。如果元素没有数组则为空数组。数组元素的下标为属性名,元素的值即为属性的值。属性名将以和元素名同样的标准进行大写转换,值进行大写转换。 - 属性的原始顺序将会被参数保留,用 each 函数遍历 attribs 时,该数组下表的顺序和属性的顺序相同。 + 遍历 attributes 的顺序与声明 attributes 的顺序相同。 - ¬e.func-callback; end_handler + &xml.handler.description; - 由 end_handler 参数命名的函数名必须接受两个参数: + 处理程序的签名必须是: - end_element_handler + voidend_element_handler XMLParserparser stringname - - parser - - - 第一个参数 parser 为指向要调用处理程序的 XML 解析器的指针。 - - - + &xml.handler.parser.param; name - 第二个参数 name,包含调用此处理程序的元素名称。如果大小写折叠(case-folding)对该解析器有效,元素名将用大写字母表示。 + 包含调用此处理程序的元素名称。如果大写转换对该解析器有效,元素名将用大写字母表示。 - - 如果处理程序名被设置为空字符串或者 &false;,则该有问题的处理程序将被屏蔽。 - diff --git a/reference/xml/functions/xml-set-end-namespace-decl-handler.xml b/reference/xml/functions/xml-set-end-namespace-decl-handler.xml index a91ae4023b..8e4d216dbf 100644 --- a/reference/xml/functions/xml-set-end-namespace-decl-handler.xml +++ b/reference/xml/functions/xml-set-end-namespace-decl-handler.xml @@ -1,6 +1,6 @@ - + @@ -29,53 +29,30 @@ &reftitle.parameters; - - parser - - - 指向 XML 解析器。 - - - + &xml.parser.param; handler + &xml.handler.description; - handler 是字符串,包含为 parser - 调用 xml_parse 时,必须存在的函数名。 - - - 以 handler 命名的函数必须接受三个参数,并且应该返回整数值。如果从处理程序返回的值为 - &false;(如果没有返回值,则为 &false;),XML 解析器将停止解析并且 xml_get_error_code - 将返回 XML_ERROR_EXTERNAL_ENTITY_HANDLING。 + 处理程序的签名必须是: handler XMLParserparser - stringprefix + stringfalseprefix - - parser - - - 第一个参数 parser 指向调用处理程序的 XML 解析器。 - - - + &xml.handler.parser.param; prefix - 前缀是一个字符串,用于引用 XML 对象中的命名空间。 + 前缀是一个字符串,用于引用 XML 对象中的命名空间。如果不存在前缀,则为 &false;。 - - 如果处理函数设置为空字符串或 &false;,则禁用相关处理程序。 - - ¬e.func-callback; diff --git a/reference/xml/functions/xml-set-external-entity-ref-handler.xml b/reference/xml/functions/xml-set-external-entity-ref-handler.xml index 0e6e6b14a9..7c39eb0b50 100644 --- a/reference/xml/functions/xml-set-external-entity-ref-handler.xml +++ b/reference/xml/functions/xml-set-external-entity-ref-handler.xml @@ -1,6 +1,6 @@ - + @@ -24,44 +24,28 @@ &reftitle.parameters; - - parser - - - XML 解析器的引用,用于建立外部实体指向处理函数。 - - - + &xml.parser.param; handler + &xml.handler.description; - 参数 handler 为表示函数名称的字符串,函数必须在为 parser 指定的解析器调用 xml_parse 函数时已存在。 - - - 由 handler 参数命名的函数名必须接受五个参数,并应该返回一个整型值。如果处理程序的返回值为 &false;(这也是函数没有确定返回值时的返回值),XML 解析器将停止解析, xml_get_error_code 函数将返回 XML_ERROR_EXTERNAL_ENTITY_HANDLING。 + 处理程序的签名必须是: - handler + boolhandler XMLParserparser stringopen_entity_names - stringbase + stringfalsebase stringsystem_id - stringpublic_id + stringfalsepublic_id - - parser - - - 第一个参数 parser 为指向要调用处理程序的 XML 解析器的指针。 - - - + &xml.handler.parser.param; open_entity_names - 第二个参数 open_entity_names 是为该实体的解析开放的实体名列表(包括被指向的实体名),这些实体名由空格隔开。 + 为该实体的解析开放的实体名列表(包括被指向的实体名),这些实体名由空格隔开。 @@ -69,7 +53,7 @@ base - 这个参数是解析外部实体的系统标识符(system_id)的基础。当前该参数通常都被设置为空字符串。 + 这个参数是解析外部实体的系统标识符(system_id)的基础。 @@ -77,7 +61,7 @@ system_id - 第四个参数 system_id 是在实体定义声明中指定的系统标识符。 + 在实体定义声明中指定的系统标识符。 @@ -85,16 +69,17 @@ public_id - 第五个参数 public_id 是在实体定义声明中指定的公共标识符,如果未指定任何标识符,则该字符串为空。公共标识符中的空格将按照 XML 的要求被正常化。 + 在实体定义声明中指定的公共标识符,如果未指定任何标识符,则该字符串为空。公共标识符中的空格将按照 XML 的要求被正常化。 - 如果处理函数名被设置为空字符串或者 &false;,则该有问题的处理器将被屏蔽。 + 如果实体已经处理,则处理程序应返回 &true;,否则返回 &false;。当返回 &false; 时,XML + 解析器将停止解析并且 xml_get_error_code 将返回 + XML_ERROR_EXTERNAL_ENTITY_HANDLING - ¬e.func-callback; diff --git a/reference/xml/functions/xml-set-notation-decl-handler.xml b/reference/xml/functions/xml-set-notation-decl-handler.xml index f177394c2b..3cd07cd874 100644 --- a/reference/xml/functions/xml-set-notation-decl-handler.xml +++ b/reference/xml/functions/xml-set-notation-decl-handler.xml @@ -1,6 +1,6 @@ - + @@ -34,46 +34,28 @@ &reftitle.parameters; - - parser - - - XML 解析器的引用,用于设置声明处理函数。 - - - + &xml.parser.param; handler + &xml.handler.description; - handler 为表示函数名称的字符串,函数必须在为 parser 指定的解析器调用 xml_parse 函数时已存在。 - - - 由 handler 参数命名的函数名必须接受五个参数: + 处理程序的签名必须是: - handler + voidhandler XMLParserparser stringnotation_name - stringbase + stringfalsebase stringsystem_id - stringpublic_id + stringfalsepublic_id - - - parser - - - - 第一个参数 parser 为指向要调用处理程序的 XML 解析器的指针。 - - - + &xml.handler.parser.param; notation_name - 该参数为以上符号格式定义中的 name 参数。 + This is the notation's name, as per the notation format described above. @@ -83,7 +65,7 @@ - 这个参数是解析符号声明的系统标识符(system_id)的基础。当前该参数通常都被设置为空字符串。 + 这个参数是解析符号声明的系统标识符(system_id)的基础。 @@ -107,10 +89,6 @@ - - 如果处理函数名被设置为空字符串或者 &false;,则该有问题的处理程序将被屏蔽。 - - ¬e.func-callback; diff --git a/reference/xml/functions/xml-set-object.xml b/reference/xml/functions/xml-set-object.xml index 31289140cd..9d0f6522e3 100644 --- a/reference/xml/functions/xml-set-object.xml +++ b/reference/xml/functions/xml-set-object.xml @@ -1,6 +1,6 @@ - + @@ -77,7 +77,7 @@ parser, "cdata"); } - function __destruct() - { - xml_parser_free($this->parser); - unset($this->parser); - } - function parse($data) { xml_parse($this->parser, $data); @@ -117,7 +111,7 @@ class XMLParser } } -$xml_parser = new XMLParser(); +$xml_parser = new CustomXMLParser(); $xml_parser->parse("PHP"); ?> ]]> diff --git a/reference/xml/functions/xml-set-processing-instruction-handler.xml b/reference/xml/functions/xml-set-processing-instruction-handler.xml index bd0cce48a0..e3f7d16161 100644 --- a/reference/xml/functions/xml-set-processing-instruction-handler.xml +++ b/reference/xml/functions/xml-set-processing-instruction-handler.xml @@ -1,6 +1,6 @@ - + @@ -22,55 +22,47 @@ 处理指令有如下格式: - - <?target - data?> - - - 可以将 PHP 代码放置在类似的标识符中,但要注意一个限制:在 XML 处理指令(PI)中,PI 的终止符(?>)不能被引号引用,因此该字符序列不应该在您用 PI 嵌入到 XML 文档中的 PHP 代码中出现。否则,剩下的 PHP 代码,包括“真正”的 PI 终止符将被当作字符数据处理。 + + +]]> + + + + PHP 代码通过 <?php 处理指令分隔。因此可以在 XML 文档中使用 PHP + 代码。但是 PI 结束标记(?>)不能是数据的一部分。如果 PI + 结束标记存在于嵌入式 PHP 代码的一部分,则 PHP 代码的其余部分以及“真实的”PI 结束标记将会视为字符数据。 + + &reftitle.parameters; - - parser - - - XML 解析器的引用,用于建立处理指令(PI)处理函数。 - - - + &xml.parser.param; handler + &xml.handler.description; - 参数 handler 为表示函数名称的字符串,函数必须在为 parser 指定的解析器调用 xml_parse 函数时已存在。 - - - 由 handler 参数命名的函数名必须接受三个参数: + 处理程序的签名必须是: - handler + voidhandler XMLParserparser stringtarget stringdata - - parser - - - 第一个参数 parser 为指向要调用处理程序的 XML 解析器的指针。 - - - + &xml.handler.parser.param; target - 第二个参数 target 为 PI 对象(PI target)。 + 处理指令目标。 @@ -78,16 +70,12 @@ data - 第三个参数 data 包含了 PI 数据。 + 处理指令数据。 - - 如果处理函数名被设置为空字符串或者 &false;,则该有问题的处理程序将被屏蔽。 - - ¬e.func-callback; diff --git a/reference/xml/functions/xml-set-start-namespace-decl-handler.xml b/reference/xml/functions/xml-set-start-namespace-decl-handler.xml index d21c14eb3d..85a8cf4014 100644 --- a/reference/xml/functions/xml-set-start-namespace-decl-handler.xml +++ b/reference/xml/functions/xml-set-start-namespace-decl-handler.xml @@ -1,6 +1,6 @@ - + @@ -18,10 +18,7 @@ callablehandler - 设置在声明命名空间时要调用的处理程序。命名空间声明出现在开始标签内。 - But the namespace declaration start - handler is called before the start tag handler for each namespace declared - in that start tag. + 设置在声明命名空间时要调用的处理程序。命名空间声明出现在开始标签内。开始标记内的命名空间声明,命名空间声明开始处理程序在开始标记处理程序之前调用。 @@ -29,45 +26,26 @@ &reftitle.parameters; - - parser - - - 指向 XML 解析器。 - - - + &xml.parser.param; handler + &xml.handler.description; - handler 是字符串,包含为 parser - 调用 xml_parse 时,必须存在的函数名。 - - - 以 handler 命名的函数必须接受三个参数,并且应该返回整数值。如果从处理程序返回的值为 - &false;(如果没有返回值,则为 &false;),XML 解析器将停止解析并且 xml_get_error_code - 将返回 XML_ERROR_EXTERNAL_ENTITY_HANDLING。 + 处理程序的签名必须是: - handler + voidhandler XMLParserparser - stringprefix + stringfalseprefix stringuri - - parser - - - 第一个参数 parser 指向调用处理程序的 XML 解析器。 - - - + &xml.handler.parser.param; prefix - 前缀是一个字符串,用于引用 XML 对象中的命名空间。 + 前缀是一个字符串,用于引用 XML 对象中的命名空间。如果不存在前缀则为 &false;。 @@ -81,10 +59,6 @@ - - 如果处理函数设置为空字符串或 &false;,则禁用相关处理程序。 - - ¬e.func-callback; diff --git a/reference/xml/functions/xml-set-unparsed-entity-decl-handler.xml b/reference/xml/functions/xml-set-unparsed-entity-decl-handler.xml index 54a800975b..8686673c66 100644 --- a/reference/xml/functions/xml-set-unparsed-entity-decl-handler.xml +++ b/reference/xml/functions/xml-set-unparsed-entity-decl-handler.xml @@ -1,6 +1,6 @@ - + @@ -38,40 +38,24 @@ &reftitle.parameters; - - parser - - - XML 解析器的引用,用于建立未解析实体定义声明处理函数。 - - - + &xml.parser.param; handler + &xml.handler.description; - 参数handler 为表示函数名称的字符串,这个函数必须在为 parser 指定的解析器调用 xml_parse 函数时已存在。 - - - 由 handler 参数命名的函数名必须接受六个参数: + 处理程序的签名必须是: - handler + voidhandler XMLParserparser stringentity_name - stringbase + stringfalsebase stringsystem_id - stringpublic_id - stringnotation_name + stringfalsepublic_id + stringfalsenotation_name - - parser - - - 第一个参数 parser 为指向要调用处理程序的 XML 解析器的指针。 - - - + &xml.handler.parser.param; entity_name @@ -84,7 +68,7 @@ base - 这个参数是解析外部实体的系统标识符(system_id)的基础。当前该参数通常都被设置为空字符串。 + 这个参数是解析外部实体的系统标识符(system_id)的基础。 @@ -114,10 +98,6 @@ - - 如果处理函数名被设置为空字符串或者 &false;,则该有问题的处理程序将被屏蔽。 - - ¬e.func-callback; diff --git a/reference/xml/setup.xml b/reference/xml/setup.xml index 05b024f346..3a3c7cbabd 100644 --- a/reference/xml/setup.xml +++ b/reference/xml/setup.xml @@ -10,11 +10,10 @@ &reftitle.required; &libxml.required; - 缺省情况下,此扩展使用expat compat layer - 。也可使用expat, - 此库位于 - &url.expat;。 - 使用expat库中的 Makefile + 默认情况下,此扩展使用 expat compat layer + 。也可使用 expat,此库位于 + &url.expat;。使用 + expat 库中的 Makefile 是不会默认构建出库文件的,可使用以下构建规则进行构建: