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 __construct(string $version = "1.0", string $encoding = "")
public append(DOMNode|string ...$nodes): void
public createAttribute(string $localName): DOMAttr|false
public createAttributeNS(?string $namespace, string $qualifiedName): DOMAttr|false
public createElement(string $localName, string $value = ""): DOMElement|false
public createElementNS(?string $namespace, string $qualifiedName, string $value = ""): DOMElement|false
public getElementById(string $elementId): ?DOMElement
public getElementsByTagName(string $qualifiedName): DOMNodeList
public getElementsByTagNameNS(?string $isimalanı, string $yerelAd): DOMNodeList
public importNode(DOMNode $node, bool $deep = false): DOMNode|false
public load(string $dosya, int $seçenekler = 0): bool
public loadHTML(string $source, int $options = 0): bool
public loadHTMLFile(string $dosya, int $seçenekler = 0): bool
public loadXML(string $dizge, int $seçenekler = 0): bool
public prepend(DOMNode|string ...$nodes): void
public registerNodeClass(string $temelSınıf, ?string $türetilenSınıf): bool
public relaxNGValidate(string $dosya): bool
public replaceChildren(DOMNode|string ...$nodes): void
public save(string $dosya, int $seçenekler = 0): int|false
public saveHTML(?DOMNode $düğüm = null): string|false
public saveHTMLFile(string $dosya): int|false
public saveXML(?DOMNode $düğüm = null, int $seçenekler = 0): string|false
public schemaValidate(string $dosya, int $seçenekler = 0): bool
public schemaValidateSource(string $şema, int $flags = 0): bool
public validate(): bool
public xinclude(int $seçenekler = 0): int|false
/* Miras alınan yöntemler */
public DOMNode::C14N(
    bool $özel = false,
    bool $aAçıklamalı = false,
    ?array $xpath = null,
    ?array $isim_alanları = 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 $torunlar_dahil = false): DOMNode|false
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $düğüm): bool
public DOMNode::isSupported(string $özellik, string $sürüm): bool
}

Ö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