La classe DOMText

(PHP 5, PHP 7, PHP 8)

Introduction

La classe DOMText hérite de DOMCharacterData et représente le contenu textuel de DOMElement ou DOMAttr.

Synopsis de la classe

DOMText extends DOMCharacterData {
/* Propriétés */
public readonly string $wholeText;
/* Propriétés héritées */
public string $data;
public readonly int $length;
public readonly string $nodeName;
public string $nodeValue;
public readonly int $nodeType;
public readonly DOMNode|null $parentNode;
public readonly DOMNodeList $childNodes;
public readonly DOMNode|null $firstChild;
public readonly DOMNode|null $lastChild;
public readonly DOMNode|null $previousSibling;
public readonly DOMNode|null $nextSibling;
public readonly DOMNamedNodeMap|null $attributes;
public readonly DOMDocument|null $ownerDocument;
public readonly string|null $namespaceURI;
public string $prefix;
public readonly string $localName;
public readonly string|null $baseURI;
public string $textContent;
/* Méthodes */
public __construct(string $data = "")
public splitText(int $offset): DOMText|false
/* Méthodes héritées */
public DOMCharacterData::appendData(string $data): bool
public DOMCharacterData::deleteData(int $offset, int $count): bool
public DOMCharacterData::insertData(int $offset, string $data): bool
public DOMCharacterData::replaceData(int $offset, int $count, string $data): bool
public DOMCharacterData::substringData(int $offset, int $count): string|false
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
    bool $exclusive = false,
    bool $withComments = false,
    array|null $xpath = null,
    array|null $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
    string $uri,
    bool $exclusive = false,
    bool $withComments = false,
    array|null $xpath = null,
    array|null $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): string|null
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, DOMNode|null $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|null
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Propriétés

wholeText

Contient tout le texte des nœuds de texte adjacents (c'est à dire, des nœuds qui ne sont pas séparés par des balises Element, Comment ou Processing Instruction).

Sommaire

add a note add a note

User Contributed Notes 1 note

up
0
Trititaty
7 years ago
Text replacement function for DOM.

<?php
function domTextReplace( $search, $replace, DOMNode &$domNode, $isRegEx = false ) {
  if (
$domNode->hasChildNodes() ) {
   
$children = array();
   
// since looping through a DOM being modified is a bad idea we prepare an array:
   
foreach ( $domNode->childNodes as $child ) {
     
$children[] = $child;
    }
    foreach (
$children as $child ) {
      if (
$child->nodeType === XML_TEXT_NODE ) {
       
$oldText = $child->wholeText;
        if (
$isRegEx ) {
         
$newText = preg_replace( $search, $replace, $oldText );
        } else {
         
$newText = str_replace( $search, $replace, $oldText );
        }
       
$newTextNode = $domNode->ownerDocument->createTextNode( $newText );
       
$domNode->replaceChild( $newTextNode, $child );
      } else {
       
domTextReplace( $search, $replace, $child, $isRegEx );
      }
    }
  }
}
To Top