2017-06-28 38 views
0

我必須創建一個xml字符串以便在發佈請求中發送。我正在使用SimpleXMLElementPHP創建相同的XML。使用SimpleXMLElement創建自閉標籤

我想創建一個嵌套的xml,其中一個標記爲自閉合。

到目前爲止,我已經創建的標籤具有的屬性和子元素如下

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

我想用SimpleXMLElement元件,其現在是一個自閉的標籤。

<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> 

我試過搜索解決方案和文檔。但我無法找到任何解決方案。如果有人能幫助完成上述任務。

也FYI我有解決方案使用DOMElement,但我沒有興趣使用,因爲我將需要重新編寫我的整個應用程序。請讓我知道這是否可以使用SimpleXMLElement來實現。

回答

0

雖然我在解決問題時非常不耐煩,但最終卻非常簡單。沒有提到它在哪裏,我只是嘗試添加一個沒有第二個參數的標籤到父標籤。簡單(XMLElemet)爲:P

下面是代碼:

$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(); 

結論:所以基本上如果沒有數據的葉節點,它會自我封閉創建 。

現在我需要檢查如何創建一個非自閉標籤的葉節點。這將是另一個問題。但後來:)

現在我完成了!