DOMDocument::createElementNS()
(PHP 5, PHP 7)
Create new element node with an associated namespace
说明
public DOMDocument::createElementNS(string $namespaceURI,string $qualifiedName[,string $value]): DOMElement
This function creates a new element node with an associated namespace.此节点出现在文档中,除非是用诸如DOMNode->appendChild()等函数来将其插入。
参数
- $namespaceURI
The URI of the namespace.
- $qualifiedName
The qualified name of the element, asprefix:tagname.
- $value
The value of the element. By default, an empty element will be created. You can also set the value later with DOMElement::$nodeValue.
返回值
The new DOMElement or FALSE
if an error occurred.
错误/异常
DOM_INVALID_CHARACTER_ERR
Raised if$qualifiedNamecontains an invalid character.
DOM_NAMESPACE_ERR
Raised if$qualifiedNameis a maformed qualified name.
范例
Example #1 Creating a new element and inserting it as root
<?php $dom = new DOMDocument('1.0', 'utf-8'); $element = $dom->createElementNS('http://www.example.com/XFoo', 'xfoo:test', 'This is the root element!'); // We insert the new element as root (child of the document) $dom->appendChild($element); echo $dom->saveXML(); ?>
以上例程会输出:
<?xml version="1.0" encoding="utf-8"?> <xfoo:test xmlns:xfoo="http://www.example.com/XFoo">This is the root element!</xfoo:test>
Example #2 A namespace prefix example
<?php $doc = new DOMDocument('1.0', 'utf-8'); $doc->formatOutput = true; $root = $doc->createElementNS('http://www.w3.org/2005/Atom', 'element'); $doc->appendChild($root); $root->setAttributeNS('http://www.w3.org/2000/xmlns/' ,'xmlns:g', 'http://base.google.com/ns/1.0'); $item = $doc->createElementNS('http://base.google.com/ns/1.0', 'g:item_type', 'house'); $root->appendChild($item); echo $doc->saveXML(), "\n"; echo $item->namespaceURI, "\n"; // Outputs: http://base.google.com/ns/1.0 echo $item->prefix, "\n"; // Outputs: g echo $item->localName, "\n"; // Outputs: item_type ?>
以上例程会输出:
<?xml version="1.0" encoding="utf-8"?> <element xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0"> <g:item_type>house</g:item_type> </element> http://base.google.com/ns/1.0 g item_type
参见
- DOMNode::appendChild() Adds new child at the end of the children
- DOMDocument::createAttribute() Create new attribute
- DOMDocument::createAttributeNS() Create new attribute node with an associated namespace
- DOMDocument::createCDATASection() Create new cdata node
- DOMDocument::createComment() Create new comment node
- DOMDocument::createDocumentFragment() Create new document fragment
- DOMDocument::createElement() Create new element node
- DOMDocument::createEntityReference() Create new entity reference node
- DOMDocument::createProcessingInstruction() Creates new PI node
- DOMDocument::createTextNode() Create new text node
To avoid multiple xmlns re-declaration, make sure you appending ElementNS into actual DOMDocument tree (not into some currently-assembed derelict element).