Antworten auf deine Fragen:
Neues Thema erstellen

simplexml: addChild -> Zeilenumbruch in XML

koma05

Aktives Mitglied

hallo.
habe eine xml-datei die mittels
PHP:
simplexml_load_file($xmlfile)
eingelesen wird.

inhalt der xml:
Code:
<demo>
    <view hlookat="0" vlookat="0" hlookatmin ="-180" hlookatmax ="180" vlookatmin ="-90" vlookatmax ="90" />
</demo>
nun füge ich mittels addChild weitere elemente in die xml-datei ein:
PHP:
        $hotspots = $xml->addChild('hotspot');
        $hotspots->addAttribute('name', 'name1');
        $hotspots->addAttribute('style', 'style1');
        $hotspots = $xml->addChild('hotspot');
        $hotspots->addAttribute('name', 'name2');
        $hotspots->addAttribute('style', 'style2');
        $hotspots = $xml->addChild('hotspot');
        $hotspots->addAttribute('name', 'name3');
        $hotspots->addAttribute('style', 'style3');
am ende werden die 3 <hotspot> alle auf einer zeile ausgegeben:
Code:
<demo>
    <view hlookat="0" vlookat="0" hlookatmin="-180" hlookatmax="180" vlookatmin="-90" vlookatmax="90"/>
<hotspot name="name1" style="style1"/><hotspot name="name2" style="style2"/><hotspot name="name3" style="style3"/></demo>

warum steht nicht jeder <hotspot> und <demo> auf einer neuen zeile? wie kann ich das hinbekommen?

danke für hilfe
 

Duddle

Posting-Frequenz: 14µHz

AW: simplexml: addChild -> Zeilenumbruch in XML

warum steht nicht jeder <hotspot> und <demo> auf einer neuen zeile?

Weil es für XML egal ist, ob da Zeilenumbrüche stehen oder nicht. SimpleXML hat keine Funktion dafür (sowas nennt sich meistens "pretty print"), in diesem StackOverflow-Thread wird aber eine funktionierende Lösung über einen Umweg per DOM beschrieben. Dazu musst du dann aber auch entsprechend DOM/XML installiert/aktiviert haben.


Duddle
 

koma05

Aktives Mitglied

AW: simplexml: addChild -> Zeilenumbruch in XML

Dazu musst du dann aber auch entsprechend DOM/XML installiert/aktiviert haben.


Duddle
danke schonmal für deinen tipp...

nutze xampp... wie bekomm ich da das dom/xml installiert bzw aktivert?

ist eigentlich laut phpinfo aktivert:
dom

DOM/XML enabled
DOM/XML API Version 20031129
libxml Version 2.7.6
edit: funktioniert!!

mittels
PHP:
$outXML = $xml->saveXML();
$xml = new DOMDocument();
$xml->preserveWhiteSpace = false;
$xml->formatOutput = true;
$xml->loadXML($outXML);
$outXML = $xml->saveXML();

$datei = fopen("test2.xml","w+");
$daten = fwrite($datei, $outXML );
fclose($datei);
]
sind die
Code:
<hotspot name="name1" style="style1"/>
<hotspot name="name2" style="style2"/>
<hotspot name="name3" style="style3"/>
alle untereinander in der xml gespeichert

:)
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben