使用SimpleXMLElement创建自关闭标签

时间:2017-06-28 10:27:43

标签: php xml simplexml

我必须创建一个要在post请求中发送的xml字符串。我正在使用 - I tried using send_keys but the same didn't work (threw following error: cannot focus element - AutoIt doesn't work since it is MAC. SimpleXMLElement库创建相同的xml。

我想创建一个嵌套的xml,其中一个标签为自闭。

到目前为止,我已经使用具有属性和子元素的元素创建了标记,如下所示

PHP

我现在想要使用$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> 的解决方案,但我对使用它不感兴趣,因为我需要重新编写整个应用程序。如果可以使用DOMElement实现此目的,请与我们联系。

1 个答案:

答案 0 :(得分: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();
  

结论:所以基本上如果它的叶子节点没有数据,那么它就是   创建为自我关闭。

现在我需要检查如何使用非自闭标记创建叶节点。那将是另一个问题。但后来:)

现在我已经完成了!