DOM DOMDocument 클래스
(PHP 5, PHP 7, PHP 8)
소개
전체 HTML 또는 XML 문서를 나타냅니다. 문서 트리의 루트 역할을 합니다.
클래스 개요
class DOMDocument extends DOMNode implements DOMParentNode {
/* Properties */
public readonly ?DOMDocumentType $doctype;
public readonly DOMImplementation $implementation;
public readonly ?DOMElement $documentElement;
public readonly ?string $actualEncoding;
public ?string $encoding;
public readonly ?string $xmlEncoding;
public bool $standalone;
public bool $xmlStandalone;
public ?string $version;
public ?string $xmlVersion;
public bool $strictErrorChecking;
public ?string $documentURI;
public readonly mixed $config = null;
public bool $formatOutput;
public bool $validateOnParse;
public bool $resolveExternals;
public bool $preserveWhiteSpace;
public bool $recover;
public bool $substituteEntities;
public readonly ?DOMElement $firstElementChild;
public readonly ?DOMElement $lastElementChild;
public readonly int $childElementCount;
/* Inherited properties */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly DOMNodeList $childNodes;
public readonly ?DOMNode $firstChild;
public readonly ?DOMNode $lastChild;
public readonly ?DOMNode $previousSibling;
public readonly ?DOMNode $nextSibling;
public readonly ?DOMNamedNodeMap $attributes;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Methods */
public __construct(string $version = "1.0", string $encoding = "")
public createAttribute(string $localName): DOMAttr|false
public createAttributeNS(?string $namespace, string $qualifiedName): DOMAttr|false
public createCDATASection(string $data): DOMCdataSection|false
public createComment(string $data): DOMComment
public createDocumentFragment(): DOMDocumentFragment
public createElement(string $localName, string $value = ""): DOMElement|false
public createElementNS(?string $namespace, string $qualifiedName, string $value = ""): DOMElement|false
public createEntityReference(string $name): DOMEntityReference|false
public createProcessingInstruction(string $target, string $data = ""): DOMProcessingInstruction|false
public createTextNode(string $data): DOMText
public getElementById(string $elementId): ?DOMElement
public getElementsByTagName(string $qualifiedName): DOMNodeList
public getElementsByTagNameNS(?string $namespace, string $localName): DOMNodeList
public importNode(DOMNode $node, bool $deep = false): DOMNode|false
public load(string $filename, int $options = 0): DOMDocument|bool
public loadHTML(string $source, int $options = 0): DOMDocument|bool
public loadHTMLFile(string $filename, int $options = 0): DOMDocument|bool
public loadXML(string $source, int $options = 0): DOMDocument|bool
public normalizeDocument(): void
public registerNodeClass(string $baseClass, ?string $extendedClass): bool
public relaxNGValidate(string $filename): bool
public relaxNGValidateSource(string $source): bool
public save(string $filename, int $options = 0): int|false
public saveHTML(?DOMNode $node = null): string|false
public saveHTMLFile(string $filename): int|false
public saveXML(?DOMNode $node = null, int $options = 0): string|false
public schemaValidate(string $filename, int $flags = 0): bool
public schemaValidateSource(string $source, int $flags = 0): bool
public validate(): bool
public xinclude(int $options = 0): int|false
/* Inherited methods */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceUri(string $prefix): string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}
Properties
- actualEncoding
- 더 이상 사용되지 않습니다. 문서의 실제 인코딩은 읽기 전용으로 encoding과 동일합니다.
- childElementCount
- 자식 요소의 수입니다.
- config
- 더 이상 사용되지 않습니다. DOMDocument::normalizeDocument()가 호출될 때 사용되는 구성입니다.
- doctype
- 이 문서와 관련된 문서 유형 선언입니다.
- documentElement
- 첫 번째 문서 요소인 DOMElement 객체입니다. 찾을 수 없으면
null
로 평가됩니다. - documentURI
- 문서의 위치이거나 정의되지 않은 경우
null
입니다. - encoding
- XML 선언에 지정된 대로 문서의 인코딩입니다. 이 속성은 최종 DOM 레벨 3 사양에는 없지만 이 구현에서 XML 문서 인코딩을 조작하는 유일한 방법입니다.
- firstElementChild
- 첫 번째 자식 요소 또는
null
입니다. - formatOutput
- 들여쓰기 및 추가 공간을 사용하여 출력 형식을 멋지게 지정합니다. preserveWhitespace이 활성화된 상태로 문서가 로드된 경우에는 효과가 없습니다.
- implementation
- 이 문서를 처리하는 DOMImplementation 객체입니다.
- lastElementChild
- 마지막 자식 요소 또는
null
입니다. - preserveWhiteSpace
- 중복 공백을 제거하지 마십시오. 기본값은
true
입니다. 이것을false
로 설정하면LIBXML_NOBLANKS
를 DOMDocument::load() 등에 대한option
으로 전달하는 것과 같은 효과가 있습니다. - recover
- 소유권. 복구 모드를 활성화합니다. 즉, 형식이 잘못된 문서를 구문 분석하려고 시도합니다. 이 속성은 DOM 사양의 일부가 아니며 libxml에만 해당됩니다.
- resolveExternals
- doctype 선언에서 외부 엔티티를 로드하려면
true
로 설정하십시오. 이것은 XML 문서에 문자 엔터티를 포함하는 데 유용합니다. - standalone
- 더 이상 사용되지 않습니다. XML 선언에서 지정한 대로 문서가 독립형인지 여부는 xmlStandalone에 해당합니다.
- strictErrorChecking
- 오류가 발생하면DOMException을 던집니다. 기본값은
true
입니다. - substituteEntities
- 소유권. 엔티티를 대체할지 여부입니다. 이 속성은 DOM 사양의 일부가 아니며 libxml에만 해당됩니다.
주의 엔티티 대체를 활성화하면 XML 외부 엔티티(XXE) 공격이 용이해질 수 있습니다.
- validateOnParse
- DTD에 대해 로드하고 유효성을 검사합니다. 기본값은
false
입니다. - version
- 더 이상 사용되지 않습니다. XML 버전은 xmlVersion에 해당합니다.
- xmlEncoding
- XML 선언의 일부로 이 문서의 인코딩을 지정하는 속성입니다. 문서가 메모리에서 생성된 경우와 같이 지정되지 않거나 알 수 없는 경우
null
입니다. - xmlStandalone
- 이 문서가 독립형인지 여부를 XML 선언의 일부로 지정하는 속성입니다. 지정하지 않으면
false
입니다. - xmlVersion
- XML 선언의 일부로 이 문서의 버전 번호를 지정하는 속성입니다. 선언이 없고 이 문서가 "XML" 기능을 지원하는 경우 값은 "1.0"입니다.
변경 로그
버전 | 설명 |
---|---|
8.0.0 | DOMDocument는 이제 DOMParentNode를 구현합니다. |
8.0.0 | 구현되지 않은 메서드 DOMDocument::renameNode()가 제거되었습니다. |
메모
메모: DOM 확장은 UTF-8 인코딩을 사용합니다. 다른 인코딩을 처리하려면 mb_convert_encoding(), UConverter::transcode() 또는 iconv()를 사용하십시오.
메모: DOMDocument 객체에서 json_encode()를 사용할 때 결과는 빈 객체를 인코딩하는 것입니다.
기타
목차
- DOMDocument::__construct — 새로운 DOMDocument 객체를 생성합니다.
- DOMDocument::createAttribute — 새 속성 만들기
- DOMDocument::createAttributeNS — 연결된 네임스페이스가 있는 새 속성 노드 만들기
- DOMDocument::createCDATASection — 새 cdata 노드 생성
- DOMDocument::createComment — 새 댓글 노드 만들기
- DOMDocument::createDocumentFragment — 새 문서 조각 만들기
- DOMDocument::createElement — 새 요소 노드 만들기
- DOMDocument::createElementNS — 연결된 네임스페이스가 있는 새 요소 노드 만들기
- DOMDocument::createEntityReference — 새 엔터티 참조 노드 만들기
- DOMDocument::createProcessingInstruction — 새 PI 노드 생성
- DOMDocument::createTextNode — 새 텍스트 노드 만들기
- DOMDocument::getElementById — 특정 ID를 가진 요소를 검색합니다.
- DOMDocument::getElementsByTagName — 주어진 로컬 태그 이름을 가진 모든 요소를 검색합니다.
- DOMDocument::getElementsByTagNameNS — 지정된 네임스페이스에서 지정된 태그 이름을 가진 모든 요소를 검색합니다.
- DOMDocument::importNode — 노드를 현재 문서로 가져오기
- DOMDocument::load — 파일에서 XML 로드
- DOMDocument::loadHTML — 문자열에서 HTML 로드
- DOMDocument::loadHTMLFile — 파일에서 HTML 로드
- DOMDocument::loadXML — 문자열에서 XML 로드
- DOMDocument::normalizeDocument — 문서를 표준화합니다.
- DOMDocument::registerNodeClass — 기본 노드 유형을 생성하는 데 사용되는 확장 클래스 등록
- DOMDocument::relaxNGValidate — 문서에 대해 RelaxNG 유효성 검사를 수행합니다.
- DOMDocument::relaxNGValidateSource — 문서에 대해 RelaxNG 유효성 검사를 수행합니다.
- DOMDocument::save — 내부 XML 트리를 파일로 다시 덤프
- DOMDocument::saveHTML — HTML 형식을 사용하여 내부 문서를 문자열로 덤프합니다.
- DOMDocument::saveHTMLFile — HTML 형식을 사용하여 내부 문서를 파일로 덤프합니다.
- DOMDocument::saveXML — 내부 XML 트리를 다시 문자열로 덤프합니다.
- DOMDocument::schemaValidate — 스키마를 기반으로 문서의 유효성을 검사합니다. XML 스키마 1.0만 지원됩니다.
- DOMDocument::schemaValidateSource — 스키마를 기반으로 문서 유효성 검사
- DOMDocument::validate — DTD를 기반으로 문서의 유효성을 검사합니다.
- DOMDocument::xinclude — DOMDocument 개체에서 XIncludes 대체