2017-06-28 3 views
0

Ich muss eine XML-Zeichenfolge erstellen, die in einer Postanforderung gesendet werden soll. Ich benutze SimpleXMLElement Bibliothek von PHP, um XML für das gleiche zu erstellen.Erstellen von selbstschließenden Tags mit SimpleXMLElement

Ich möchte eine verschachtelte XML mit einem der Tag als selbstschließend erstellen.

Bis jetzt hat ich erstellt Tags mit Elementen Attribute und Kinder, wie

$envelop = new SimpleXMLElement("<Envelope></Envelope>"); 
$body = $envelop->addChild('Body'); 
. 
. 
. 
. 
$envelop->asXML(); // Gives me proper XML 

Was folgt, mag ich jetzt einen schließenden Tag selbst mit SimpleXMLElement Elemente zu erreichen ist.

<Envelope> 
<Body> 
    <ExportList> 
    <LIST_ID>234234</LIST_ID> 
    <EXPORT_TYPE>ALL</EXPORT_TYPE> 
    <EXPORT_FORMAT>CSV</EXPORT_FORMAT> 
    <ADD_TO_STORED_FILES/>     < -- Target Tag --> 
    <DATE_START>07/25/2003 12:12:11</DATE_START> 
    <DATE_END>09/30/2005 14:14:11</DATE_END> 
    </ExportList> 
</Body> 
</Envelope> 

Ich habe versucht, nach Lösungen und Dokumenten zu suchen. Aber ich konnte keine Lösungen für diesen finden. Bitte, wenn jemand helfen könnte, die oben genannte Aufgabe zu erfüllen.

Auch FYI Ich habe Lösungen mit DOMElement, aber ich bin nicht daran interessiert, das zu verwenden, denn dann muss ich meine gesamte Anwendung neu schreiben. Bitte lassen Sie mich wissen, wenn dies mit SimpleXMLElement erreicht werden kann.

Antwort

0

Während ich so ungeduldig nach der Lösung rannte, war es am Ende sehr einfach. Es wurde nirgends erwähnt, ich habe gerade versucht, ein Tag ohne zweiten Parameter zu einem Eltern-Tag hinzuzufügen. Simple (XMLElemet) wie: P

Unten ist der Code:

$envelop = new SimpleXMLElement("<Envelope></Envelope>"); 
$body = $envelop->addChild('Body'); 
$exportList = $body->addChild('ExportList'); 
$exportList->addChild('LIST_ID', 234234); 
$exportList->addChild('ADD_TO_STORED_FILES'); // passing nothing 
. 
. 
. 
$envelop->asXML(); 

Fazit: Also im Grunde, wenn es ein Blattknoten ohne Daten, wird es als selbstschließend erstellt werden.

Jetzt muss ich überprüfen, wie Sie einen Blattknoten mit nicht selbstschließendem Tag erstellen. Das wird eine andere Frage sein. Aber später :)

Für jetzt bin ich fertig!

Verwandte Themen