Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Geleitwort
Vorwort
1 PEAR – Einführung
2 Authentication
3 Caching
4 Date and Time
5 File Formats
6 HTTP
7 Internationalization
8 Mail
9 Networking
10 PHP
11 Text
12 Web Services
13 Benchmarking
14 Configuration
15 Database
16 File System
17 HTML
18 Images
19 Logging
20 Math
21 Numbers
22 Tools and Utilities
23 XML
24 Selbst Pakete erstellen
25 PECL
Index
Ihre Meinung?

Spacer
 <<   zurück
PHP PEAR von Carsten Möhrke
Anwendung und Entwicklung – Erweiterungen für PHP schreiben
Buch: PHP PEAR

PHP PEAR
798 S., 39,90 Euro
Rheinwerk Computing
ISBN 3-89842-580-0
gp 23 XML
  gp 23.1 XML_Util
  gp 23.2 XML_Beautifier
  gp 23.3 XML_RSS
  gp 23.4 XML_Tree
  gp 23.5 XML_DTD
  gp 23.6 XML_Parser
  gp 23.7 XML_Wddx
  gp 23.8 XML_Serializer
  gp 23.9 XML_Indexing


Rheinwerk Computing

23.2 XML_Beautifier  toptop


Besprochene Version: 1.1 Lizenz: PHP-Lizenz
Klassendatei(en): XML/Beautifier.php

Der XML_Beautifier ist eine Klasse, die es Ihnen ermöglicht, XML-Daten oder -Dateien optisch zu »verschönern«. Wenn Sie beispielsweise einen XML-Datenstrom von einem Programm übernehmen, sind diese Daten häufig optisch nicht schön aufbereitet. Das liegt daran, dass es, wenn die Daten maschinell verarbeitet werden sollen, keinen Grund dafür gibt, sie ordentlich zu formatieren. Möchten Sie die Daten allerdings auf dem Bildschirm darstellen oder ausdrucken, ist eine ordentliche Formatierung sehr hilfreich.

Ich denke, Sie werden mir zustimmen, wenn ich sage, dass diese XML-Daten eher schlecht zu lesen sind:

<daten><name><vorname>Carsten 
</vorname><nachname>Moehrke</nachname></name> 
        <gebtag>        <tag>5</tag> 
<monat>2</monat>        <jahr>1971 
</jahr> 
                </gebtag> 
</daten>

Um diese Daten, die für das Beispiel in der Datei daten.xml abgelegt wurden, korrekt zu formatieren und auf dem Bildschirm auszugeben, reichen die Zeilen aus Listing 23.1 schon aus.

require_once ('XML/Beautifier.php'); 
$beauty = new XML_Beautifier(); 
$res = $beauty->formatFile('daten.xml'); 
if (PEAR::isError($res)) 
{ 
   die($res->getMessage()); 
} 
else 
{ 
   echo "<pre>".htmlspecialchars($res)."</pre>"; 
}

Listing 23.1 Formatierung mithilfe von XML_Beautifier

Im Browser erscheint der Code dann korrekt formatiert:

<daten> 
    <name> 
        <vorname>Carsten</vorname> 
        <nachname>Moehrke</nachname> 
    </name> 
    <gebtag> 
        <tag>5</tag> 
        <monat>2</monat> 
        <jahr>1971</jahr> 
    </gebtag> 
</daten>

Die Methode formatFile() übernimmt die Daten aus einer Datei und bereitet sie entsprechend auf. Wenn Sie ihr keinen zweiten Dateinamen übergeben, gibt sie die aufbereiteten Informationen als String zurück. Erhält die Methode einen zweiten Dateinamen als Parameter, so versucht sie, die Daten in einer neuen Datei abzulegen. Sollte bei dem Formatierungsprozess oder beim Abspeichern ein Fehler auftreten, generiert die Methode ein PEAR_Error-Objekt.

Um die Daten auf dem Bildschirm auszugeben, müssen sie natürlich noch so aufbereitet werden, dass der Browser die Daten auch darstellt und nicht selbst interpretiert. Um die Einrückungen zu erhalten, habe ich dazu das Tag <pre></pre> genutzt und, damit die Kleiner-als- und Größer-als-Zeichen auch korrekt dargestellt werden, die Daten an htmlspecialchars() übergeben.

Da die XML-Daten natürlich nicht immer aus Dateien kommen, kann das Paket auch Daten konvertieren, die in einem String übergeben werden. Hierzu müssen die Daten an formatString() übergeben werden. Diese Methode ist nicht in der Lage, die Daten in einer Datei abzulegen, und kann sie nur in Form eines Strings zurückgeben.

Sie haben durchaus die Möglichkeit, das Verhalten des Renderers mit einigen Optionen zu steuern, so dass die zurückgegebenen Daten individueller gestaltet werden können. Die Optionen können Sie in Form eines Arrays direkt an den Konstruktor oder die Methode setOptions() übergeben. Einzelne Optionen können auch mit setOption() gesetzt werden. Diese Methode bekommt kein Array, sondern nur den Namen der Option und den gewünschten Wert als Parameter übergeben.

In Tabelle 23.1 finden Sie die Namen der Optionen mit einer Erläuterung.


Tabelle 23.1 Optionen, um das Verhalten von XML_Beautifier zu steuern
Option Erläuterung
removeLineBreaks Kann true (Default) oder false sein und legt fest, ob in den Daten unnötige Zeilenumbrüche am Anfang und Ende entfernt werden sollen. Zurzeit werden allerdings noch alle Whitespaces vor und hinter den Daten entfernt.
indent Definiert, mit welchen Zeichen eingerückt werden soll. Standard sind 4 Leerzeichen. Sie können einen beliebigen String oder beispielsweise auch \t nutzen.
linebreak Definiert, wie ein Zeilenende dargestellt werden soll. Der Standard ist \n, aber Sie können z. B. auch \r\n nutzen.
caseFolding Definiert, ob ein Casefolding erfolgen soll (true) oder nicht (false).
caseFoldingTo Steuert, in welche »Richtung« das Casefolding erfolgen soll. Mit dem Wert 'uppercase' werden die Tags alle groß dargestellt (Standard), wohingegen der Wert 'lowercase' für eine Darstellung in Kleinbuchstaben sorgt.
maxCommentLine Legt fest, nach wie vielen Zeichen eine Kommentarzeile umbrochen werden soll. Mit dem Standardwert –1 wird festgelegt, dass die Zeile unendlich lang sein darf.
multilineTags Übergeben Sie ein true, wird, wenn mehrere Attribute in einem Tag vorhanden sind, nach jeden Attribut ein Zeilenumbruch eingefügt.

 <<   zurück
     
  Zum Katalog
Zum Katalog: PHP PEAR
PHP PEAR
Jetzt bestellen!
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: PHP 5.6 und MySQL 5.7






 PHP 5.6 und
 MySQL 5.7


Zum Katalog: Einstieg in PHP 5.6 und MySQL 5.6






 Einstieg in PHP 5.6
 und MySQL 5.6


Zum Katalog: Responsive Webdesign






 Responsive Webdesign


Zum Katalog: Moderne Websites entwickeln






 Moderne Websites
 entwickeln


Zum Katalog: MySQL 5.6






 MySQL 5.6


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo








Copyright © Rheinwerk Verlag GmbH 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de