Ultimately this worked for me, thanks to everyone for the input:
for( child = root->FirstChild(); child; child = child->NextSibling() )
{
if(child->Type() == TiXmlNode::TINYXML_ELEMENT)
{
thevalue = child->Value();
}
//If this Node has children traverse them.
//and keep going for all.
if(child->FirstChild())
{
TiXmlNode* myChild = child->FirstChild();
while(myChild)
{
if(myChild->Type() == TiXmlNode::TINYXML_ELEMENT)
{
thevalue = child->Value();
}
if(myChild->Type() == TiXmlNode::TINYXML_TEXT)
{
thevalue= myChild->Value();
}
myChild = myChild->FirstChild();
}
}
}