DOMDocument sınıfı

(PHP 5, PHP 7, PHP 8)

Giriş

Bir HTML veya XML belgeyi temsil eder ve belgeyi belge ağacının kökü olarak sunar.

Sınıf Sözdizimi

class DOMDocument extends DOMNode implements DOMParentNode {
/* Özellikler */
public readonly ?DOMDocumentType $doctype;
public readonly ?DOMElement $documentElement;
public readonly ?string $actualEncoding;
public ?string $encoding;
public readonly ?string $xmlEncoding;
public ?string $version;
public readonly mixed $config;
public bool $recover;
public readonly ?DOMElement $firstElementChild;
public readonly ?DOMElement $lastElementChild;
public readonly int $childElementCount;
/* Miras alınan özellikler */
public readonly ?string $nodeName;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public ?string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
/* Yöntemler */
public function __construct(string $version = "1.0", string $encoding = "")
public function adoptNode(DOMNode $node): DOMNode|false
public function append(DOMNode|string ...$nodes): void
public function createAttribute(string $localName): DOMAttr|false
public function createAttributeNS(?string $namespace, string $qualifiedName): DOMAttr|false
public function createComment(string $data): DOMComment
public function createElement(string $localName, string $value = ""): DOMElement|false
public function createElementNS(?string $namespace, string $qualifiedName, string $value = ""): DOMElement|false
public function createTextNode(string $data): DOMText
public function getElementById(string $elementId): ?DOMElement
public function getElementsByTagName(string $qualifiedName): DOMNodeList
public function getElementsByTagNameNS(?string $isimalanı, string $yerelAd): DOMNodeList
public function importNode(DOMNode $node, bool $deep = false): DOMNode|false
public function load(string $dosya, int $seçenekler = 0): bool
public function loadHTML(string $source, int $options = 0): bool
public function loadHTMLFile(string $dosya, int $seçenekler = 0): bool
public function loadXML(string $dizge, int $seçenekler = 0): bool
public function normalizeDocument(): void
public function prepend(DOMNode|string ...$nodes): void
public function registerNodeClass(string $temelSınıf, ?string $türetilenSınıf): bool
public function relaxNGValidate(string $dosya): bool
public function relaxNGValidateSource(string $rng): bool
public function replaceChildren(DOMNode|string ...$nodes): void
public function save(string $dosya, int $seçenekler = 0): int|false
public function saveHTML(?DOMNode $düğüm = null): string|false
public function saveHTMLFile(string $dosya): int|false
public function saveXML(?DOMNode $düğüm = null, int $seçenekler = 0): string|false
public function schemaValidate(string $dosya, int $seçenekler = 0): bool
public function schemaValidateSource(string $şema, int $flags = 0): bool
public function validate(): bool
public function xinclude(int $seçenekler = 0): int|false
/* Miras alınan yöntemler */
public function DOMNode::appendChild(DOMNode $yeni): DOMNode|false
public function DOMNode::C14N(
    bool $özel = false,
    bool $aAçıklamalı = false,
    ?array $xpath = null,
    ?array $isim_alanları = null
): string|false
public function DOMNode::C14NFile(
    string $uri,
    bool $exclusive = false,
    bool $withComments = false,
    ?array $xpath = null,
    ?array $nsPrefixes = null
): int|false
public function DOMNode::cloneNode(bool $torunlar_dahil = false): DOMNode|false
public function DOMNode::getLineNo(): int
public function DOMNode::getNodePath(): ?string
public function DOMNode::getRootNode(?array $options = null): DOMNode
public function DOMNode::hasAttributes(): bool
public function DOMNode::hasChildNodes(): bool
public function DOMNode::insertBefore(DOMNode $yeni, ?DOMNode $mevcut = null): DOMNode|false
public function DOMNode::isDefaultNamespace(string $uri): bool
public function DOMNode::isEqualNode(?DOMNode $otherNode): bool
public function DOMNode::isSameNode(DOMNode $düğüm): bool
public function DOMNode::isSupported(string $özellik, string $sürüm): bool
public function DOMNode::lookupPrefix(string $uri): ?string
public function DOMNode::normalize(): void
public function DOMNode::removeChild(DOMNode $eski): DOMNode|false
public function DOMNode::replaceChild(DOMNode $yeni, DOMNode $eski): DOMNode|false
public function DOMNode::__sleep(): array
public function DOMNode::__wakeup(): void
}

Özellikler

actualEncoding

Kullanımı önerilmiyor. encoding özelliğinin salt okunur eşdeğeri olarak belgenin asıl kodlaması.

childElementCount

Çocuk elemanların sayısı.

config

Kullanımı önerilmiyor. DOMDocument::normalizeDocument() çağrıldığında kullanılan yapılandırma.

doctype

Bu belgenin Belge Türü Bildirimi.

documentElement

İlk belge elemanı olarak DOMElement nesnesi. Böyle bir eleman yoksa değeri null olur.

documentURI

Belgenin bulunduğu yer; tanımlanmamışsa null'dur.

encoding

Belgenin XMl bildiriminde belirtilen karakter kodlaması. Bu öznitelik 3. seviye DOM belirtiminin son sürümünde yoktur, ancak bu gerçeklenimin XML belge kodlamasını bir yerde belirtmesi gerekiyordu ve tek yol buydu.

firstElementChild

İlk çocuk eleman ya da null.

formatOutput

Çıktı, girintiler ve ek boşluklarla daha hoş biçemlenir. Belge preserveWhitespace etkin olarak yüklenmişse bunun bir etkisi yoktur.

implementation

Belgenin elde edilmesinde kullanılan DOMImplementation nesnesi.

lastElementChild

Son çocuk eleman ya da null.

preserveWhiteSpace

Fazladan boşluklar silinmez. Ön tanımlı değer: true. Buna false atamakla DOMDocument::load()'a option olarak LIBXML_NOBLANKS atamak aynı etkiye sahiptir.

recover

Tescilli. Kurtarma kipini etkin kılar. Yani, iyi biçemli olmayan belgeler de çözümlenmeye çalışılır. Bu öznitelik DOM belirtiminin bir parçası değildir; libxml'e özgüdür.

resolveExternals

Bir belge türü bildirimindeki harici öğeleri yüklemek için true atayın. Karakter öğelerini XML belgeye dahil etmek için yararlıdır.

standalone

Kullanımı önerilmiyor. XML bildiriminde belirtildiği gibi, belgenin tek bir belgeden oluşup oluşmadığını belirtir. xmlStandalone özniteliğine karşılıktır.

strictErrorChecking

Hata durumunda DOMException oluşur. Ön tanımlı değer: true.

substituteEntities

Tescilli. Öğelerin ikame edilip edilmeyeceği. Bu öznitelik DOM belirtiminin bir parçası değildir; libxml'e özgüdür. Ön tanımlı değer: false.

Dikkat

Öğe ikamesi, XML Harici Öğe (XXE) saldırılarını kolaylaştırabilir.

validateOnParse

Belge DTD'ye uygun olarak doğrulanır ve yüklenir. Ön tanımlı değer: false.

Dikkat

DTD doğrulamasının etkinleştirilmesi, XML Harici Varlık (XXE) saldırılarını kolaylaştırabilir.

version

Kullanımı önerilmiyor. xmlVersion özelliğinin karşılığı olarak XML sürümü.

xmlEncoding

Belgenin karakter kodlaması olarak, XML bildiriminde belirtilen karakter kodlaması. Belgede belirtilmediğinde veya bilinmediğinde (örneğin, belge bellekte oluşturulmuşssa) değeri null'dur.

xmlStandalone

XML bildiriminin bir parçası olarak bu belgenin bağımsız olup olmadığını belirten bir öznitelik. Belirtilmediğinde bu false olur. Bağımsız bir belge, harici imleme bildirimleri olmayan belgedir. Bu tür bir imleme bildiriminin bir örneği, DTD'nin öntanımlı değeri olan bir öznitelik bildirmesidir.

xmlVersion

XML bildiriminde belirtildiği gibi, belgenin XML sürümü. Hiçbir bildirim yoksa ve belge XML'i destekliyorsa değer: "1.0".

Sürüm Bilgisi

Sürüm: Açıklama
8.0.0 DOMDocument artık DOMParentNode arayüzünü gerçekliyor.
8.0.0 Gerçeklenmemiş olan DOMDocument::renameNode() yöntemi kaldırıldı.

Notlar

Bilginize:

DOM eklentisi UTF-8 kodlama kullanır. Diğer kodlamalarla çalışmak için mb_convert_encoding(), UConverter::transcode() veya iconv() kullanılabilir.

Bilginize:

DOMDocument nesnesi üzerinde json_encode() işlevi kullanılırsa sonuç boş bir nesnenin kodlanması olacaktır.

İçindekiler