The DOMText class

(PHP 5, PHP 7, PHP 8)

Einführung

The DOMText class inherits from DOMCharacterData and represents the textual content of a DOMElement or DOMAttr.

Klassenbeschreibung

DOMText extends DOMCharacterData {
/* Eigenschaften */
public readonly string $wholeText;
/* Geerbte Eigenschaften */
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;
/* Methoden */
public __construct ( string $data = "" )
public isElementContentWhitespace ( ) : bool
public isWhitespaceInElementContent ( ) : bool
public splitText ( int $offset ) : DOMText|false
/* Geerbte Methoden */
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
}

Eigenschaften

wholeText

Holds all the text of logically-adjacent (not separated by Element, Comment or Processing Instruction) Text nodes.

Inhaltsverzeichnis

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