Probleme bei der Ausgabe von XML

Ischterai

Mitglied
Morgen,

ich lerne seit dieser Woche php und bin auch mit Professionelle Softwareentwicklung mit PHP 5, nur habe ich probleme bei den beispielen mit xml:

Code:
<?php
$document = new DOMDocument('1.0', 'iso-8859-1');
$document->formatOutput = TRUE;
 
$books = $document->appendChild(
  $document->createElement('books')
);
 
$psmp5 = $books->appendChild(
  $document->createElement('book')
);
 
$psmp5->setAttribute('lang', 'de');
 
$psmp5->appendChild(
  $document->createElement(
    'author',
    'Sebastian Bergmann'
  )
);
 
$psmp5->appendChild(
  $document->createElement(
    'title',
    'Professionelle Softwareentwicklung mit PHP 5'
  )
);
 
$psmp5->appendChild(
  $document->createElement(
    'isbn',
    '3-89864-229-1'
  )
);
 
print $document->saveXML();
?>

Sollte eigentlich:
<?xml version="1.0" encoding="iso-8859-1"?>
<books>
<book lang="de">
<author>Sebastian Bergmann</author>
<title>Professionelle Softwareentwicklung mit PHP 5</title>
<isbn>3-89864-229-1</isbn>
</book>
</books>

ich bekomme aber nur:
Sebastian Bergmann 3-89864-229-1
hat einer von euch eine ahnung woran das liegen kann.
PHP 5 hab ich vom XAMPP-Pack.
 
Moin,

erstmal eingangs: dein Code ist fehlerfrei :-)
(Wenn du dir den Quelltext im Browser anschaust, siehst du das).
Das Problem ist:

Der Server hat diverse Grundeinstellungen, mit welchem Content-Type er Dokumente ausliefert.
Bei php-Dateien bspw. text/html

Nur ist das, was du dort ausgibst, kein HTML, sondern XML, HTML kennt diese ganzen Elemente dort nicht, und ignoriert sie deshalb(es weiss halt nicht, wie es sie darstellen soll).

Wenn du das Ergebnis als XML an den Browser senden willst, sende eingangs einen XML-Header:
Code:
header('Content-Type:text/xml');
In XML-Tauglichen Browsern solltest du jetzt mehr sehen.
 
Zurück