文字

DOMDocument::createElementNS

(PHP 5, PHP 7)

DOMDocument::createElementNS Create new element node with an associated namespace

说明

public DOMElement DOMDocument::createElementNS ( string $namespaceURI , string $qualifiedName [, string $value ] )

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, as prefix: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 qualifiedName contains an invalid character.

DOM_NAMESPACE_ERR

Raised if qualifiedName is 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

用户评论:

[#1] Martin [2011-12-27 21:39:06]

To avoid multiple xmlns re-declaration, make sure you appending ElementNS into actual DOMDocument tree (not into some currently-assembed derelict element).

上一篇: 下一篇: