$sitemap .= " " . '<orders>' . "\n" .
"\t" . '<idKlant>' . $id. '</idKlant>' .
"\n\t" . '<emptyfield></emptyfield>' .
"\n\t" . '<date>' . $verzenddatum . '</date>' . //remaining to get
"\n " . '</orders>' . "\n";
为了生成XMl,我使用下面的代码
$xmlobj = new SimpleXMLElement($sitemap);
$xmlobj->asXML("orders.xml");
orders.xml
<orders>
<idKlant>12</idKlant>
<emptyfield/>
<date>30-12-2012</date>
</orders>
我想要的是:对于空xml字段,还应该有打开和关闭标记
<orders>
<idKlant>12</idKlant>
<emptyfield></emptyfield>
<date>30-12-2012</date>
</orders>
有可能吗?或者我应该添加黑色空间?
答案 0 :(得分:0)
正如Rolando Isidoro所说,你不能用SimpleXML做到这一点。但是你总是可以切换到DOM。两个扩展都使用相同的底层库和表示,因此开销很小 DOMDocument::saveXML可以将libxml选项作为第二个参数,LIBXML_NOEMPTYTAG可以完全按照您的意愿执行。
e.g。
<?php
$o = new SimpleXMLELement(data());
$docRoot = dom_import_simplexml($o);
echo $docRoot->ownerDocument->savexml($docRoot,LIBXML_NOEMPTYTAG);
function data() {
return '<orders>
<idKlant>12</idKlant>
<emptyfield/>
<date>30-12-2012</date>
</orders>';
}
打印
<orders>
<idKlant>12</idKlant>
<emptyfield></emptyfield>
<date>30-12-2012</date>
</orders>