Here is the input string I'm using: <div id="custom"> <table width="100%" cellspacing="0" cellpadding="10"> <tbody> <tr valign="top"> <td id="frame1" style="width:30%;height:80%"> <div id="display"> <div id="toolBYOPPageMetaData3"> {display ref="BYOPPageMetaData" id="3"} </div> </div> </td> <td id="frame2" style="width:70%;height:80%"> <div id="display"> <div id="toolResourceList0"> {display ref="ResourceList" id="0"} </div> </div> </td> </tr> </tbody> </table> </div> And here is the PHP stub I'm using: $oDOMDocument = new DOMDocument; $oDOMDocument->preserveWhiteSpace = false; $oDOMDocument->formatOutput = true; $oDOMDocument->validateOnParse = true; if( $oDOMDocument->loadHTML( $cleanedFile )) { $aLayoutNodes = $oDOMDocument->getElementsByTagName("div"); if( 0 < count( $aLayoutNodes )) { echo 'Found [' . count( $aLayoutNodes ) . '] nodes.' . "\n"; foreach( $aLayoutNodes as $oLayoutNode ) { $sLayoutId = $oLayoutNode->getAttribute( 'id' ); echo 'Current Id: [' . $sLayoutId . ']' . "\n"; } } $oCustomNode = $oDOMDocument->getElementById( "custom" ); echo 'Tag: ' . $oCustomNode->nodeValue . "\n"; } Getting the elements by tag name, while iterating through the list I see that one of the nodes has an id of 'custom'. However, when I try to get the element directly using getElementById(), it doesn't return the node properly. Am I doing something wrong? Also, as an aside, one thing that I found odd is that count( $aLayoutNodes ) shows as 1 even though more are found. Huh? thnx, Christoph