文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>xml_parser_set_option

xml_parser_set_option

时间:2008-05-04  来源:小飞虫


(PHP 4, PHP 5)
xml_parser_set_option — 为指定 XML 解析进行选项设置
说明
bool xml_parser_set_option ( resource $parser, int $option, mixed $value )
parser
指向要设置选项信息的 XML 解析器的指针。
option
要设置的选项名称。请参考下文。
value
要给选项设置的新值。
如果 parser 参数没有指向一个合法的解析器或者指定的选项无法设置,该函数将返回 FALSE,否则将会把选项设置为指定的值并返回 TRUE。
可被设置的选项如下:
表 316. XML 解析器选项
选项常量
数据类型
描述
XML_OPTION_CASE_FOLDING
integer
控制在该 XML 解析器中
大小写折叠(case-folding)
是否有效。其默认值为有效。
XML_OPTION_SKIP_TAGSTART
integer
指明在一个标记名前应略过几个字符。
XML_OPTION_SKIP_WHITE
integer
是否略过由白空字符组成的值。
XML_OPTION_TARGET_ENCODING
string
设置该 XML 解析器所使用的
目标编码(target encoding)
方式。其默认值和由
xml_parser_create()
函数设置的源编码(source encoding)方式相同。支持的目标编码方式有 ISO-8859-1、US-ASCII 和 UTF-8。

例子
A little mod to a function posted here...
function xml_to_array( $file )
{
    $parser = xml_parser_create();
    xml_parser_set_option( $parser, XML_OPTION_CASE_FOLDING, 0 );
    xml_parser_set_option( $parser, XML_OPTION_SKIP_WHITE, 1 );
    xml_parse_into_struct( $parser, file_get_contents($file), $tags );
    xml_parser_free( $parser );
   
    $elements = array();
    $stack = array();
    foreach ( $tags as $tag )
    {
        $index = count( $elements );
        if ( $tag['type'] == "complete" || $tag['type'] == "open" )
        {
            $elements[$index] = array();
            $elements[$index]['name'] = $tag['tag'];
            $elements[$index]['attributes'] = $tag['attributes'];
            $elements[$index]['content'] = $tag['value'];
            
            if ( $tag['type'] == "open" )
            {    # push
                $elements[$index]['children'] = array();
                $stack[count($stack)] = &$elements;
                $elements = &$elements[$index]['children'];
            }
        }
        
        if ( $tag['type'] == "close" )
        {    # pop
            $elements = &$stack[count($stack) - 1];
            unset($stack[count($stack) - 1]);
        }
    }
    return $elements[0];
}


相关阅读 更多 +
排行榜 更多 +
西安交大通

西安交大通

生活实用 下载
长江云通

长江云通

生活实用 下载
translatez

translatez

生活实用 下载