XML wird nicht richtig angezeigt
Hi
ich habe in PHP folgende Datei geschrieben und möchte, daß diese wie in XML üblich gegliedert und untereinander angezeigt wird. Bisher werden die Daten zwar richtig ausgegeben, aber eben nur einfach hintereinander. Was muss ich ändern?
<?
$xml="<?xml version=\"1.0\" encoding=\"ISO-88859-1\"?>";
$xml.="<plugins>";
include ("db.php");
$abfrage = "SELECT * FROM xxx ORDER BY name ASC";
$ergebnis = mysql_query($abfrage);
while ($row = mysql_fetch_array($ergebnis))
{
$xml.="<name>";
$xml.=$row['name'];
$xml.="</name>";
$xml.="<Version>";
$xml.=$row['version'];
$xml.="</Version>";
$xml.="<Entwicklerversion>";
$xml.=$row['e_version'];
$xml.="</Entwicklerversion>";
$xml.="<Download>";
$xml.=$row['link_e_source'];
$xml.="</Download>";
$xml.="<Entwicklerdownload>";
$xml.=$row['link_e_source'];
$xml.="</Entwicklerdownload>";
}
$xml.="</plugins>";
echo utf8_encode($xml);
?>
Antwort schreiben
Antwort 1 von katy vom 07.01.2020, 13:48 Options
Hallo Netdeus,
so wie ich das sehe *), hast du kein Stylesheet eingebunden. Ohne Stylesheet hat der Browser aber keinen Anhaltspunkt, wie er die XML-Tags darstellen soll und verarbeitet sie einfach als Inline-Elemente - quasi wie Text.
Näheres hierzu kannst du nachlesen bei
SelfHTML.
Einen schönen weißen Wintertag wünscht
katy
*): ich habe natürlich keine Ahnung was sich unter
include ("db.php"); verbirgt. Es wäre daher für weitere (Nach-)Fragen besser, nicht das PHP-Script sondern die fertige XML-Datei zu posten.
Antwort 2 von Netdeus vom 07.01.2020, 14:20 Options
die db.php ist nur die Verbindung zur Datenbank...sonst nichts...
Die fertige Datei kann unter:
www.pc-coaching-rodgau.de/VDR/abfrage_xml.php
gesehen werden...
Antwort 3 von katy vom 07.01.2020, 14:25 Options
Hallo Netdeus,
da ist wirklich kein Stylesheet. Das müsstest du noch erstellen und einbauen entsprechend der Anleitung auf SelfHTML
katy
Antwort 4 von Netdeus vom 07.01.2020, 14:33 Options
Habe ich erstellt und ist auch eingebunden...hier die beiden Quelltexte:
<?
$xml="<?xml version=\"1.0\" encoding=\"ISO-88859-1\"?>";
$xml.="<?xml-stylesheet type=\"text/css\" href=\"abfrage.css\" ?>";
$xml.="<plugins>";
include ("db.php");
$abfrage = "SELECT * FROM plugins ORDER BY name ASC";
$ergebnis = mysql_query($abfrage);
while ($row = mysql_fetch_array($ergebnis))
{
$xml.="<name>";
$xml.=$row['name'];
$xml.="</name>";
$xml.="<Version>";
$xml.=$row['version'];
$xml.="</Version>";
$xml.="<Entwicklerversion>";
$xml.=$row['e_version'];
$xml.="</Entwicklerversion>";
$xml.="<Download>";
$xml.=$row['link_e_source'];
$xml.="</Download>";
$xml.="<Entwicklerdownload>";
$xml.=$row['link_e_source'];
$xml.="</Entwicklerdownload>";
}
$xml.="</plugins>";
echo utf8_encode($xml);
?>
und
name {
position:absolute;
top:10px;
left:40px;
background-color:#C0C0C0;
padding:10px;
}
Version {
position:relative;
display:block;
width:600px;
background-color:#808080;
color:#FFFFFF;
font-family:Tahoma,Arial,Helvetica,sans-serif;
font-size:48px;
padding:5px;
Entwicklerversion {
position:relative;
display:block;
width:600px;
background-color:#808080;
color:#FFFFFF;
font-family:Tahoma,Arial,Helvetica,sans-serif;
font-size:48px;
padding:5px;
Download {
position:relative;
display:block;
width:600px;
background-color:#808080;
color:#FFFFFF;
font-family:Tahoma,Arial,Helvetica,sans-serif;
font-size:48px;
padding:5px;
Entwicklerdownload {
position:relative;
display:block;
width:600px;
background-color:#808080;
color:#FFFFFF;
font-family:Tahoma,Arial,Helvetica,sans-serif;
font-size:48px;
padding:5px;
schön wenn meine Ausgabe so aussehen würde:
<plugin>
<name>admin</name>
<Version>0.02</Version>
.
.
<name>lirc</name>
<Version>0.1.2</Version>
.
.
</plugin>
Antwort 5 von katy vom 07.01.2020, 14:46 Options
Hallo Netdeus,
im Gegensatz zu deinem Code funktioniert ja das SelfHTML-Beispiel bei mir problemlos. Einen Unterschied sehe ich auf Anhieb nur in der fehlenden DTD. Da ich selbst XML noch nie zur direkten Ausgabe verwendet habe, weiß ich jetzt nicht, ob die DTD fürs CSS erforderlich ist. Probier es eben mal aus.
katy