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 PHP-Skripte
Seite PHP Befehlsreferenz
Seite PHP5 Praxisbuch
Seite Gratis-Videolektionen*
Seite Download *
Seite SELFPHP Banner *
Seite SELFPHP in Buchform
Seite Newsletter *
Seite Impressum

Seite Anbieterverzeichnis

 
* Link führt ins Internet


Anbieterverzeichnis
Informieren Sie sich über die Unternehmen in unserem Anbieterverzeichnis!  

 


SELFPHP Forum
Fragen rund um die Themen PHP? In über 79.000 Beiträgen finden Sie sicher die passende Antwort!*  


Newsletter
Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!*

Vorname: 
Name:
E-Mail:
 



 

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
 




 sponsored by

Host Europe


HighText iBusiness


Host Europe




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