PHP
downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

DOMElement::__construct> <DOMDocumentType
Last updated: Fri, 26 Dec 2008

view this page in

La classe DOMElement

Synopsis de la classe

DOMElement
DOMElement étend DOMNode {
/* Propriétés */
readonly public bool $schemaTypeInfo ;
readonly public string $tagName ;
/* Méthodes */
__construct ( string $name [, string $value [, string $namespaceURI ]] )
string DOMElement::getAttribute ( string $name )
DOMAttr DOMElement::getAttributeNode ( string $name )
DOMAttr DOMElement::getAttributeNodeNS ( string $namespaceURI , string $localName )
string DOMElement::getAttributeNS ( string $namespaceURI , string $localName )
DOMNodeList DOMElement::getElementsByTagName ( string $name )
DOMNodeList DOMElement::getElementsByTagNameNS ( string $namespaceURI , string $localName )
bool DOMElement::hasAttribute ( string $name )
bool DOMElement::hasAttributeNS ( string $namespaceURI , string $localName )
bool DOMElement::removeAttribute ( string $name )
bool DOMElement::removeAttributeNS ( string $namespaceURI , string $localName )
DOMAttr DOMElement::setAttribute ( string $name , string $value )
void DOMElement::setAttributeNS ( string $namespaceURI , string $qualifiedName , string $value )
void DOMElement::setIdAttribute ( string $name , bool $isId )
void DOMElement::setIdAttributeNode ( DOMAttr $attr , bool $isId )
void DOMElement::setIdAttributeNS ( string $namespaceURI , string $localName , bool $isId )
/* Méthodes héritées */
DOMNode DOMNode::appendChild ( DOMNode $newnode )
DOMNode DOMNode::cloneNode ([ bool $deep ] )
bool DOMNode::hasAttributes ( void )
bool DOMNode::hasChildNodes ( void )
DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
bool DOMNode::isDefaultNamespace ( string $namespaceURI )
bool DOMNode::isSupported ( string $feature , string $version )
string DOMNode::lookupNamespaceURI ( string $prefix )
string DOMNode::lookupPrefix ( string $namespaceURI )
void DOMNode::normalize ( void )
DOMNode DOMNode::removeChild ( DOMNode $oldnode )
DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Propriétés

schemaTypeInfo

Non implémenté, retourne toujours NULL

tagName

Le nom de l'élément

Sommaire



DOMElement::__construct> <DOMDocumentType
Last updated: Fri, 26 Dec 2008
 
add a note add a note User Contributed Notes
DOMElement
patrick smith
04-Nov-2008 05:14
Although it may be preferable to use the dom to manipulate elements, sometimes it's useful to actually get the innerHTML from a document element (e.g. to load into a client-side editor).

To get the innerHTML of a specific element ($elem_id) in a specific html file ($filepath):

<?php
$innerHTML
= '';
$doc = new DOMDocument();
$doc->loadHTMLFile($filepath);   
$elem = $doc->getElementById($elem_id);

// loop through all childNodes, getting html       
$children = $elem->childNodes;
foreach (
$children as $child) {
   
$tmp_doc = new DOMDocument();
   
$tmp_doc->appendChild($tmp_doc->importNode($child,true));       
   
$innerHTML .= $tmp_doc->saveHTML();
}
?>
Pinochet
25-Oct-2008 02:33
Hi to get the value of DOMElement just get the nodeValue public parameter (it is inherited from DOMNode):
<?php
echo $domElement->nodeValue;
?>
Everything is obvious if you now about this thing ;-)
j DOT wagner ( AT ) medieninnovation.com
08-Oct-2008 06:11
Caveat!
It took me almost an hour to figure this out, so I hope it saves at least one of you some time.

If you want to debug your DOM tree and try var_dump() or similar you will be fooled into thinking the DOMElement that you are looking at is empty, because var_dump() says: object(DOMElement)#1 (0) { }

After much debugging I found out that all DOM objects are invisible to var_dump() and print_r(), my guess is because they are C objects and not PHP objects. So I tried saveXML(), which works fine on DOMDocument, but is not implemented on DOMElement.

The solution is simple (if you know it):
$xml = $domElement->ownerDocument->saveXML($domElement);

This will give you an XML representation of $domElement.
Severin
14-Sep-2008 03:18
I wanted to find similar Elements - thats why I built an Xpath-String like this - maybe somebody needs it... its not very pretty - but neither is domdocument :)

<?php

$dom
->load($xmlFile))

$xpathQuery = '//*';
$xmlNodes = $xpath->query($xpathQuery);
       
$pathlist = array();
$attrlist = array();
foreach (
$xmlNodes as $node) {

 
$depth = $this->_getDomDepth($node);   //get Path-Depth (for array key)
 
$pathlist[$depth] = $node->tagName;     // tagname
         
 
$attrs = $node->attributes;
 
$attr='';
 
$a=0;
  foreach (
$attrs as $attrName => $attrNode// attributes
           
{
              if (
$attrName !='reg')
              {
                if (
$a++!=0) $attr .= ' and ';
               
$attr .= '@'.$attrName.'='."'".$attrNode->value."'";
              }
            }
         
         
$attrlist[$depth] = $attr?'['.$attr.']':'';
         
         
$path = ''; for ($i=0;$i<=$depth;$i++) $path .= '/'.$pathlist[$i].$attrlist[$i];  // the xpath of the actual Element

    // ... now you can go on and user $path to find similar elements
   
}
  }
}

 private function
_getDomDepth(DomNode $node)
   {
    
$r = -2;
     while (
$node) {
      
$r++; 
      
$node = $node->parentNode;
     }
     return 
$r;
   }
?>
ae.fxx
18-Jul-2008 10:49
Hi there.

Remember to append a DOMNode (or any of its descendants) to a DOMDocument __BEFORE__ you try to append a child to it.

I don't know why it has to be this way but it can't be done without it.

bye

DOMElement::__construct> <DOMDocumentType
Last updated: Fri, 26 Dec 2008
 
 
show source | credits | sitemap | contact | advertising | mirror sites