PHP XML解析器函数

PHP xml_parser_set_option() 函数通过 XML 解析器设置选项值。

语法

xml_parser_set_option(parser, option, value) 

    参数

    parser必需。 指定对 XML 解析器的引用以在其中设置选项。
    option必需。 指定要设置的选项。可能的值为:
    • XML_OPTION_CASE_FOLDING:指定是否启用大小写折叠。默认处于启用状态。
    • XML_OPTION_SKIP_TAGSTART:指定在标记名称开头跳过的字符数。
    • XML_OPTION_SKIP_WHITE :指定是否跳过由空白字符组成的值。
    • XML_OPTION_TARGET_ENCODING:指定此 XML 解析器中的目标编码。设置为与 xml_parser_create() 函数相同。支持的目标编码为 ISO-8859-1、US-ASCII 和 UTF-8。
    value必需。 指定选项的新值。

    返回值

    如果解析程序未引用有效的解析程序,或者无法设置该选项,则返回false。否则,将设置该选项并返回true。

    示例:

    在下面的示例中,使用 xml_parser_create() 函数创建 XML 解析器。然后,xml_parser_set_option()函数用于设置此 XML 解析器的选项值。

    <?php
    //创建XML解析器
    $parser=xml_parser_create();
    
    //设置XML_OPTION_CASE_FOLDING的值
    $retval1 = xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
    if($retval1)
      echo "XML_OPTION_CASE_FOLDING is set successfully.<br>";
    else
      echo "Getting error while setting XML_OPTION_CASE_FOLDING.<br>";
    
    //设置XML_OPTION_SKIP_TAGSTART的值
    $retval2 = xml_parser_set_option($parser, XML_OPTION_SKIP_TAGSTART, 1);
    if($retval2)
      echo "XML_OPTION_SKIP_TAGSTART is set successfully.<br>";
    else
      echo "Getting error while setting XML_OPTION_SKIP_TAGSTART.<br>";
    
    //设置XML_OPTION_TARGET_ENCODING的值
    $retval3 = xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, 'US-ASCII');
    if($retval3)
      echo "XML_OPTION_TARGET_ENCODING is set successfully.<br>";
    else
      echo "Getting error while setting XML_OPTION_TARGET_ENCODING.<br>";
    
    //免费的XML解析器
    xml_parser_free($parser);
    ?> 
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    上述代码的输出将是:

    XML_OPTION_CASE_FOLDING is set successfully.
    XML_OPTION_SKIP_TAGSTART is set successfully.
    XML_OPTION_TARGET_ENCODING is set successfully. 
    • 1
    • 2

    示例:

    考虑下面的示例,其中尝试设置选项的值将其设置为无效值。在这种情况下,会发生运行时错误。

    <?php
    //创建XML解析器
    $parser=xml_parser_create();
    
    //设置XML_OPTION_TARGET_ENCODING的值
    $retval = xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, 'UTF-16');
    if($retval)
      echo "XML_OPTION_TARGET_ENCODING is set successfully.<br>";
    else
      echo "Getting error while setting XML_OPTION_TARGET_ENCODING.<br>";
    
    //免费的XML解析器
    xml_parser_free($parser);
    ?> 
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    上述代码的输出将是:

    PHP Fatal error:  Uncaught ValueError: xml_parser_set_option(): Argument #3 ($value) is not a supported target encoding in Main.php:6
    Stack trace:
    #0 Main.php(6): xml_parser_set_option()
    #1 {main}
      thrown in Main.php on line 6 
    • 1
    • 2
    • 3
    • 4