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_NOBLANKSDOMDocument::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()를 사용할 때 결과는 빈 객체를 인코딩하는 것입니다.


기타


목차