Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  XML
Letztes Update: 16.08.2005 17:53:45


Navigation

Seite News *

Seite Startseite
Seite Über SELFPHP
Seite Werbung
Seite Kontakt
Seite Forum *
Seite Download *
Seite SELFPHP Banner *
Seite SELFPHP in Buchform
Seite Newsletter *
Seite Impressum

 
* Link führt ins Internet



 

Eigenschaften der XML-Funktionen




Die durch Expat zur Verfügung gestellten XML-Funktionen weisen einige Besonderheiten auf, die es zu beachten gilt.


Umwandlung der Schreibweise

Die als „Case Folding“ bezeichnete Maßnahme bezieht sich auf die Anforderung der Ereignisbehandlungsroutinen, die zu untersuchenden Tags in Grossbuchstaben zu erhalten. Entsprechend werden sämtliche XML-Elemente, die gesendet werden, zuvor in Grossbuchstaben umgewandelt. Der Vorgang kann mit den beiden Funktionen xml_parser_get_option() und xml_parser_set_option() kontrolliert werden.


XML-Fehlercodes

Die Fehlercodes, die von der Funktion xml_parse() ausgegeben werden, liegen als Konstante vor. Die folgende Tabelle enthält sämtliche Fehlercodes.


XML-Fehlercode
XML_ERROR_NONE
XML_ERROR_NO_MEMORY
XML_ERROR_SYNTAX
XML_ERROR_NO_ELEMENTS
XML_ERROR_INVALID_TOKEN
XML_ERROR_UNCLOSED_TOKEN
XML_ERROR_PARTIAL_CHAR
XML_ERROR_TAG_MISMATCH
XML_ERROR_DUPLICATE_ATTRIBUTE
XML_ERROR_JUNK_AFTER_DOC_ELEMENT
XML_ERROR_PARAM_ENTITY_REF
XML_ERROR_UNDEFINED_ENTITY
XML_ERROR_RECURSIVE_ENTITY_REF
XML_ERROR_ASYNC_ENTITY
XML_ERROR_BAD_CHAR_REF
XML_ERROR_BINARY_ENTITY_REF
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF
XML_ERROR_MISPLACED_XML_PI
XML_ERROR_UNKNOWN_ENCODING
XML_ERROR_INCORRECT_ENCODING
XML_ERROR_UNCLOSED_CDATA_SECTION
XML_ERROR_EXTERNAL_ENTITY_HANDLING



Zeichenkodierung

PHP kodiert Zeichen intern immer im Unicode-Format UTF-8, 8 bis 21 Bits in bis zu 4 Bytes. Die Kodierung des Quelltextes muss vor dem Parsen festgelegt werden. Die alternativen Zeichensätze US-ASCII und ISO-8859-1 (Latin-1) sind 8-Bit-Zeichensätze.

Eine weitere Einstellung ist nach dem Parsen der Tags möglich. Diese als Zielkodierung bezeichnete Wahl des Zeichensatzes erfolgt, wenn die untersuchten Elemente an die Ereignisbehandlungsroutinen weiter geleitet werden. Zeichen, die nicht abgebildet werden können, ersetzt PHP durch ein Fragezeichen.


XML und Objekte

Seit PHP 4 haben Sie die Möglichkeit mit Hilfe der Funktion xml_set_object() auch Objekte zu parsen. Hierfür haben wir für Sie ein Beispiel, welches Sie sich ausführlich betrachten sollten.


Beispiel



<pre>
<?php
// XML Klassendefinition
class xml_klasse  {
    var
$parser;

    function
xml_klasse() {
        
$this->parser = xml_parser_create();

        
xml_set_object($this->parser, &$this);
        
xml_set_element_handler($this->parser, "open_tag", "close_tag");
        
xml_set_character_data_handler($this->parser, "cdata");
    }

    function
parse($data) {
        
xml_parse($this->parser, $data);
    }

    function
open_tag($parser, $tag, $attributes) {
        
var_dump($parser, $tag, $attributes);
    }

    function
close_tag($parser, $tag) {
        
var_dump($parser, $tag);
    }
    
    function
cdata($parser, $cdata) {
        
var_dump($parser, $cdata);
    }

}

// XML Parser (als Objekt)
$xml_parser = new xml_klasse();

// XML-Struktur parsen
$xml_parser->parse("<PERSON ID='100'>Matthias</PERSON>");
?>
</pre>




Ausgabe



resource(2) of type (xml)
string(6) "PERSON"
array(1) {
  ["ID"]=>
  string(3) "100"
}
resource(2) of type (xml)
string(8) "Matthias"
resource(2) of type (xml)
string(6) "PERSON"



Hinweis: In Zukunft wird die Verarbeitung von XML-Strukturen in Klassen und Objekten sicherlich vermehrt auftreten.



 


XML-Funktionen in PHP
 






© 2001-2005 E-Mail SELFPHP - Damir Enseleit, info@selfphp.deImpressumKontakt
© 2005 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de