选项 XML_OPTION_SKIP_WHITE 在我的 PHP 5.2.6(使用 expat-1.95.8-5)中没有效果。要跳过仅由空格组成的 cdata,只需在您的 cdata 回调函数开头检查该条件。
<?php
function callback_cdata($parser, $cdata)
{
if(!trim($cdata))
return;
// ... 继续处理 ...
}
?>
(PHP 4, PHP 5, PHP 7, PHP 8)
xml_parser_set_option — 在 XML 解析器中设置选项
在 XML 解析器中设置选项。
parser
对要设置选项的 XML 解析器的引用。
option
要设置的选项。参见下方。
以下是可用的选项
选项常量 | 数据类型 | 描述 |
---|---|---|
XML_OPTION_CASE_FOLDING |
bool | 控制此 XML 解析器是否启用 大小写折叠。默认情况下启用。 |
XML_OPTION_SKIP_TAGSTART |
integer | 指定在标签名称开头应跳过多少个字符。 |
XML_OPTION_SKIP_WHITE |
bool | 是否跳过由空格字符组成的值。 |
XML_OPTION_TARGET_ENCODING |
string | 设置此 XML 解析器要使用的 目标编码。默认情况下,它设置为与 xml_parser_create() 使用的源编码相同。支持的目标编码为 ISO-8859-1 、US-ASCII 和 UTF-8 。 |
value
选项的新值。
当将无效值传递给 option
时,抛出 ValueError。
在 PHP 8.0.0 之前,当将无效值传递给 option
时,该函数会返回 false,并生成 E_WARNING
,同时使函数返回 false
。
版本 | 描述 |
---|---|
8.3.0 | value 参数现在也接受布尔值。选项 XML_OPTION_CASE_FOLDING 和 XML_OPTION_SKIP_WHITE 现在是布尔选项。 |
8.0.0 |
parser 现在期望一个 XMLParser 实例;以前,期望的是一个有效的 xml resource。 |
8.0.0 | 如果 option 无效,现在会抛出 ValueError。 |
选项 XML_OPTION_SKIP_WHITE 在我的 PHP 5.2.6(使用 expat-1.95.8-5)中没有效果。要跳过仅由空格组成的 cdata,只需在您的 cdata 回调函数开头检查该条件。
<?php
function callback_cdata($parser, $cdata)
{
if(!trim($cdata))
return;
// ... 继续处理 ...
}
?>
XML 区分大小写,因此,在我看来,禁用大小写折叠并不违反 xml 1.0 规范,而是相反,禁用大小写折叠使我们能够区分同一个字母的不同大小写('a' 和 'A'),在 XML 中它们是两个不同的东西。
在我看来,禁用大小写折叠是一种良好的做法,我认为它应该默认禁用。
更多信息请访问
http://www.isacat.net/2001/xml/case.htm
和
http://www.w3.org/TR/REC-xml
谢谢。
在下面的函数中,如果您不想让 php 抛出警告,需要更新两行。
将这两行
$elements[$index]['attributes'] = $tag['attributes'];
$elements[$index]['content'] = $tag['value'];
更改为
$elements[$index]['attributes'] = empty($tag['attributes']) ? "" : $tag['attributes'];
$elements[$index]['content'] = empty($tag['value']) ? "" : $tag['value'];