A classe DOMText

(PHP 5, PHP 7, PHP 8)

Introdução

A classe DOMText herda de DOMCharacterData e representa o conteúdo textua de um elemento DOMElement ou DOMAttr.

Resumo da classe

class DOMText extends DOMCharacterData {
/* Constantes herdadas */
/* Propriedades */
public readonly string $wholeText;
/* Propriedades herdadas */
public string $data;
public readonly int $length;
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;
/* Métodos */
public function __construct(string $data = "")
public function isElementContentWhitespace(): bool
public function splitText(int $offset): DOMText|false
/* Métodos herdados */
public function DOMCharacterData::after(DOMNode|string ...$nodes): void
public function DOMCharacterData::appendData(string $data): true
public function DOMCharacterData::before(DOMNode|string ...$nodes): void
public function DOMCharacterData::deleteData(int $offset, int $count): bool
public function DOMCharacterData::insertData(int $offset, string $data): bool
public function DOMCharacterData::remove(): void
public function DOMCharacterData::replaceData(int $offset, int $count, string $data): bool
public function DOMCharacterData::replaceWith(DOMNode|string ...$nodes): void
public function DOMCharacterData::substringData(int $offset, int $count): string|false
public function DOMNode::appendChild(DOMNode $node): DOMNode|false
public function DOMNode::C14N(
    bool $exclusive = false,
    bool $withComments = false,
    ?array $xpath = null,
    ?array $nsPrefixes = 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 $deep = 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 $node, ?DOMNode $child = null): DOMNode|false
public function DOMNode::isDefaultNamespace(string $namespace): bool
public function DOMNode::isEqualNode(?DOMNode $otherNode): bool
public function DOMNode::isSameNode(DOMNode $otherNode): bool
public function DOMNode::isSupported(string $feature, string $version): bool
public function DOMNode::lookupNamespaceURI(?string $prefix): ?string
public function DOMNode::lookupPrefix(string $namespace): ?string
public function DOMNode::normalize(): void
public function DOMNode::removeChild(DOMNode $child): DOMNode|false
public function DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
public function DOMNode::__sleep(): array
public function DOMNode::__wakeup(): void
}

Propriedades

wholeText

Contém todo o texto de nós de texto logicamente adjacentes (não separados por Elemento, Comentário ou Instrução de Processamento).

Registro de Alterações

Versão Descrição
8.0.0 O método não implementado DOMText::replaceWholeText() foi removido.

Índice

adicionar nota

Notas de Usuários 1 note

up
0
Trititaty
9 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