DOM DOMDocument::createElement

(PHP 5, PHP 7, PHP 8)

DOMDocument::createElement — 새 요소 노드 만들기


설명

public DOMDocument::createElement(string $localName, string $value = ""): DOMElement|false

이 함수는 DOMElement 클래스의 새 인스턴스를 만듭니다. 이 노드는 DOMNode::appendChild()와 같이 삽입되지 않는 한 문서에 표시되지 않습니다.


매개변수

localName
요소의 태그 이름입니다.
value
요소의 값입니다. 기본적으로 빈 요소가 생성됩니다. 값은 나중에 DOMElement::$nodeValue로 설정할 수도 있습니다.

값은 < 및 > 엔티티 참조가 이스케이프된다는 점을 제외하고 그대로 사용됩니다. &는 수동으로 이스케이프해야 합니다. 그렇지 않으면 엔티티 참조를 시작하는 것으로 간주됩니다. 또한 "이스케이프되지 않습니다.


반환 값

DOMElement 클래스의 새 인스턴스를 반환하거나 오류가 발생하면 false를 반환합니다.


오류/예외

DOM_INVALID_CHARACTER_ERR
localName에 잘못된 문자가 포함된 경우 발생합니다.

Examples

예제 #1 새 요소 생성 및 루트로 삽입

                  
<?php

$dom = new DOMDocument('1.0', 'utf-8');

$element = $dom->createElement('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"?>
<test>This is the root element!</test>
                

예제 #2 이스케이프 처리되지 않은 & value을 포함하는 텍스트 전달

                  
<?php
$dom = new DOMDocument('1.0', 'utf-8');
$element = $dom->createElement('foo', 'me & you');
$dom->appendChild($element);
echo $dom->saveXML();
?>
                  
                

위의 예는 다음과 유사한 결과를 출력합니다.

Warning: DOMDocument::createElement(): unterminated entity reference             you in /in/BjTCg on line 4
<?xml version="1.0" encoding="utf-8"?>
<foo/>
                

메모

메모: value은 이스케이프되지 않습니다. DOMDocument::createTextNode()를 사용하여 이스케이프 지원이 있는 텍스트 노드를 만듭니다.


기타