 | | Offres d'emplois |  | Développeurs PHP/MYSQL H/F Owlient est une société en forte croissance concevant des jeux en ligne pour des communautés de passionnés.
Sur le sujet de l'équitation, le prem... | |
 | | Avez vous lu ? |  | | |
|
 La classe de lecture des fichiers XML | |  |

<?php
// --- class xml
class XML {
var $xml_data;
var $obj_data;
var $pointer;
function CXml() { }
function Set_xml_data(&$xml_data) {
$this->index = 0;
$this->pointer[] = &$this->obj_data;
// --- suppresion des espaces entre les tags
$this->xml_data = eregi_replace(">"."[[:space:]]+"."<","><",$xml_data);
$this->xml_parser = xml_parser_create();
xml_parser_set_option($this->xml_parser,
XML_OPTION_CASE_FOLDING, false);
xml_set_object($this->xml_parser, $this);
xml_set_element_handler($this->xml_parser, "_startElement",
"_endElement");
xml_set_character_data_handler($this->xml_parser, "_cData");
xml_parse($this->xml_parser, $this->xml_data, true);
xml_parser_free($this->xml_parser);
}
function _startElement($parser, $tag, $attributeList) {
foreach($attributeList as $name => $value) {
$value = $this->_cleanString($value);
$object->$name = $value;
}
// --- remplacement des caractères spéciaux par
// le caractère underscore (_) dans le nom des tags
$tag = preg_replace("/[:\-\. ]/", "_", $tag);
eval("\$this->pointer[\$this->index]->" . $tag
. "[] = \$object;");
eval("\$size = sizeof(\$this->pointer[\$this->index]->"
. $tag . ");");
eval("\$this->pointer[] = &\$this->pointer[\$this->index]->"
. $tag . "[\$size-1];");
$this->index++;
}
function _endElement($parser, $tag) {
array_pop($this->pointer);
$this->index--;
}
function _cData($parser, $data) {
if (empty($this->pointer[$this->index])) {
if (rtrim($data, "\n")) {
$this->pointer[$this->index] = $data;
}
}
else {
$this->pointer[$this->index] .= $data;
}
}
// --- conversion des caractères UTF8
function _cleanString($string) {
return utf8_decode(trim($string));
}
}
?>
|
|
|
 |
|