当我在下面尝试添加xmlns:i为属性时,我正在创建Atom供稿-
xmlns:i
$node->addAttribute("xmlns:i","http://www.w3.org/2001/XMLSchema-instance");
我将此作为输出-
i="http://www.w3.org/2001/XMLSchema-instance"
"xmlns:"部分被切断。我需要转义- :字符吗?还是他们以其他方式添加此命名空间?
"xmlns:"
:
如果要从名称空间/前缀i向$ node 添加属性,则无需事先声明名称空间。只需使用addAttribute()的第三个参数为您在第一个参数中使用的前缀提供名称空间uri。
i
$node = new SimpleXMLElement('<root></root>'); $node->addAttribute("i:somename", "somevalue", 'http://www.w3.org/2001/XMLSchema-instance'); echo $node->asXml();
版画
<?xml version="1.0"?> <root xmlns:i="http://www.w3.org/2001/XMLSchema-instance" i:somename="somevalue"/>
如果不需要属性本身,则可以使用删除它unset(),而保留名称空间声明。
unset()
unset($node->attributes('i', TRUE)['somename']);