Unable to add namespace to an attribute with PHP's SimpleXML

前端 未结 3 1205
悲哀的现实
悲哀的现实 2020-11-30 10:40

I am creating an Atom feed, when I tried below to add xmlns:i as an attribute -

$node->addAttribute(\"xmlns:i\",\"http://www.w3.org/2001/XML         


        
3条回答
  •  借酒劲吻你
    2020-11-30 10:48

    If you want to add an attribute from the namespace/prefix i to $node don't bother declaring the namespace beforehand. Just use the third parameter of addAttribute() to provide the namespace uri for the prefix you're using in the first parameter.

    $node = new SimpleXMLElement('');
    $node->addAttribute("i:somename", "somevalue", 'http://www.w3.org/2001/XMLSchema-instance'); 
    echo $node->asXml();
    

    prints

    
    
    

    If the attribute itself isn't needed, you can then remove it with unset(), leaving the namespace declaration.

    unset($node->attributes('i', TRUE)['somename']);
    

提交回复
热议问题