Php 如何将空命名空间添加到simpleXML元素
为了在web服务的本地php测试环境版本中模拟从SOAP web服务检索的XML,我希望向元素添加一个空名称空间,就像实际web服务本身提供的那样 但是,当我向addChild方法添加空字符串命名空间参数时,它不会被添加。任何其他值都会给我一个名称空间,但正如我所说的,我希望有一个空名称空间 所以Php 如何将空命名空间添加到simpleXML元素,php,simplexml,xml-namespaces,Php,Simplexml,Xml Namespaces,为了在web服务的本地php测试环境版本中模拟从SOAP web服务检索的XML,我希望向元素添加一个空名称空间,就像实际web服务本身提供的那样 但是,当我向addChild方法添加空字符串命名空间参数时,它不会被添加。任何其他值都会给我一个名称空间,但正如我所说的,我希望有一个空名称空间 所以 $xml=新的SimpleXMLElement(“”); $nako=$xml->addChild('nako','000',''); 给我 <cdhead> <nako&
$xml=新的SimpleXMLElement(“”);
$nako=$xml->addChild('nako','000','');
给我
<cdhead>
<nako>000</nako>
</cdhead>
000
但我希望有
<cdhead>
<nako xmlns="">000</nako>
</cdhead>
000
如何实现这一点?这个问题是因为您使用的是PHP5.2。这是一个bug,在PHP5.2系列中已修复。在这里您可以查看。我已经使用PHP5.3进行了测试,您的示例是开箱即用的。这在任何情况下都应该有效:
<?php
$xml = new SimpleXMLElement('<cdhead/>');
$nako = $xml -> addChild ('nako', '000');
$nako->addAttribute('xmlns', '');
echo $nako->saveXml();
addChild('nako','000');
$nako->addAttribute('xmlns','');
echo$nako->saveXml();
如果PHP版本低于5.3,则手动添加该属性
更新我也用PHP5.2.17-dotdeb进行了尝试,结果都是开箱即用
- 添加属性
- 使用空字符串作为命名空间的addChild
<?php
$xml = new SimpleXMLElement('<cdhead/>');
$nako = $xml -> addChild ('nako', '000');
$nako->addAttribute('xmlns', '');
echo $nako->saveXml();