PHP: xml_parser_set_option - Manual

downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

xml_set_character_data_handler xml_parser_get_option

Last updated: Fri, 26 Jan 2007

view this page in

# xml_parser_set_option

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_parser_set_option -- Set options in an XML parser

## Description

bool xml_parser_set_option ( resource parser, int option, mixed value )

`parser`

  A reference to the XML parser to set an option in.

`option`

  Which option to set. See below.

`value`

  The option's new value.

This function returns `FALSE` if `parser` does not refer to a valid parser, or if the option could not be set. Else the option is set and `TRUE` is returned.

The following options are available:

Таблица 1. XML parser options

Option constant | Data type | Description
--- | --- | ---
XML_OPTION_CASE_FOLDING | integer | Controls whether case-folding is enabled for this XML parser. Enabled by default.
XML_OPTION_SKIP_TAGSTART | integer | Specify how many characters should be skipped in the beginning of a tag name.
XML_OPTION_SKIP_WHITE | integer | Whether to skip values consisting of whitespace characters.
XML_OPTION_TARGET_ENCODING | string | Sets which target encoding to use in this XML parser.By default, it is set to the same as the source encoding used by xml_parser_create(). Supported target encodings are `ISO-8859-1`, `US-ASCII` and `UTF-8`.

add a note User Contributed Notes
xml_parser_set_option
j[no_spam_please] at [thx]jessepearson dot net
08-Mar-2007 08:08
`In the function below, you need to update two lines if you don't want php to throw warnings.
change these two:
$elements[$index]['attributes'] = $tag['attributes'];
$elements[$index]['content'] = $tag['value'];
to this:
$elements[$index]['attributes'] = empty($tag['attributes']) ? "" : $tag['attributes'];
$elements[$index]['content'] = empty($tag['value']) ? "" : $tag['value'];`
06-Sep-2006 07:56
`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];
}`
matt at mcbridematt dot dhs dot org
16-Dec-2002 05:56
`Re: anony at mous dot com
case folding is a violation of the XHTML specification. xhtml is all in lowercase to be inline with the DOM`
pupeno at pupeno dot com
16-Nov-2002 01:14
`XML is case sensitive, then, from my point of view, disabling case folding doesn't goes against xml 1.0 specifications but the contrary, disabling case folding allow us to distiguish between diferent cases of the same letter ('a' and 'A') which of XML are two diferent things.
From my point of view, disabling case folding is a good practice and I think it should be disabled by default.
More information on:
http://www.isacat.net/2001/xml/case.htm
and
http://www.w3.org/TR/REC-xml
Thank you.`
ta at NOSPAM dot magicsquare dot info
09-Jul-2002 04:52
`XML_OPTION_SKIP_WHITE works for me (linux, php 4.2.1)
phpinfo says :
XML Support active
XML Namespace Support active
EXPAT Version expat_1.95.2
i guess it depends on expat version/presence`
chris at wildcharacters dot com
21-Oct-2001 07:32
`The two 'skip' tags are not available to windows users using PHP 4.0.4. The following:
$skipWhite = xml_parser_get_option ($xmlParser,XML_OPTION_SKIP_WHITE);
$skipTagStart = xml_parser_get_option ($xmlParser,XML_OPTION_SKIP_TAGSTART);
generates the following errors:
Warning: xml_parser_get_option: unknown option in c:/program files/abria merlin/apache/htdocs/xml/sax_test.php on line 230`
gregoire dot hubert at fr dot alcove dot com
23-Mar-2001 09:05
`XML_OPTION_SKIP_WHITE =1 allows the parser to skip "space" characters in xml document (default is 0)`
anony at mous dot com
20-Apr-2000 05:26
`Disable case folding or your code will be violating the XML 1.0 specification.`
add a note
xml_set_character_data_handler xml_parser_get_option

Last updated: Fri, 26 Jan 2007
show source | credits | stats | sitemap | contact | advertising | mirror sites
Copyright © 2001-2007 The PHP Group
All rights reserved.
This mirror generously provided by: Yahoo! Inc.
Last updated: Sat Mar 10 10:36:09 2007 PST