2016-06-29 11 views
1

Ich habe einen XML-Generator mit PHP SimpleXML erstellt, das Problem ist jetzt, wenn es leere Werte gibt, fügt das Element, das hinzugefügt wurde, ein Shortcut geschlossenes Tag anstelle eines vollständigen Tags ein. wie zWie kann man Abkürzungen vermeiden? Schließen Sie xml-Tags, wenn der Wert in simplexml leer ist addChild?

dieser statt

<mytag></mytag> 

wird der Ausgang mir diese geben

<mytag/> 

wie mit dem addChild() von SimpleXMLElement von PHP um dieses Problem zu beheben?

+0

Was ist Ihre Version mit 'addChild()'? –

+0

'' – sasori

+0

Nein, was ist der Code, den Sie bisher verwendet haben? –

Antwort

1

Selbstschließende Tags sind ein normaler Bestandteil von XML. Sie sollten sich also normalerweise nicht darum kümmern. Wenn Sie sie jedoch wirklich vermeiden und das vollständige Zeichen <mytag></mytag> auch dann verwenden möchten, wenn sie leer ist, verfügt SimpleXML nicht über diese Option, jedoch über DOM, und Sie können bei der Ausgabe in DOM konvertieren.

Zum Beispiel, wenn Sie mit

$xml->asXML() 

ändern es zu

dom_import_simplexml($xml)->ownerDocument->saveXML(null, LIBXML_NOEMPTYTAG); 
+0

bin 'fwrite ($ file, $ xml-> asXML())' ..while dieses 'fwrite ($ file, $ xml-> asXML (null, LIBXML_NOEMPTYTAG))', gab mir ein Fehler – sasori

+0

Ah Entschuldigung, SimpleXML hat nicht die gleiche Option. – thomasrutter

+0

Ich habe meine Antwort geändert. Hoffe, es funktioniert. – thomasrutter