Weird. The textarea node has a childnode that is a text object, and you have to read it separately.
if($node->nodeName == "textarea" && $node->getAttribute('name') == "whatever"){
$inodes = $node->childNodes;
foreach($inodes as $inode){
echo "whatever textarea: " . $inode->substringData(0, 100000) . "<br>\n";
}
}
Of course, you can't just read the value in, as far as I can tell, so you have to get a substring that is bigger than the whole thing.
Not exactly intuitive, and definitely not documented (I just stumbled across it in my own tests), but it works.