为了模拟在Web服务的本地php测试环境版本中从SOAP Web服务检索的XML,我希望向元素添加一个空名称空间,就像实际的Web服务本身一样。
但是当我向addChild方法添加一个空字符串命名空间参数时,它不会被添加。任何其他值确实给了我一个命名空间,但正如我所说,我希望有一个空的。
所以
$xml = new SimpleXMLElement('<cdhead/>');
$nako = $xml -> addChild ('nako', '000', '');
给了我
<cdhead>
<nako>000</nako>
</cdhead>
但我希望
<cdhead>
<nako xmlns="">000</nako>
</cdhead>
我怎样才能做到这一点?
答案 0 :(得分:1)
这个问题是因为你使用的是php 5.2。它是一个错误,并在PHP 5.2系列中得到修复。在这里,您可以查看Bugreport。我已经使用PHP 5.3进行了测试,您的示例开箱即用。这应该适用于任何情况:
<?php
$xml = new SimpleXMLElement('<cdhead/>');
$nako = $xml -> addChild ('nako', '000');
$nako->addAttribute('xmlns', '');
echo $nako->saveXml();
如果PHP版本低于5.3
,则手动添加属性UPDATE 我也尝试使用PHP 5.2.17-dotdeb,它开箱即用,两者都