DOMElement可以包含其他DOMElement或DOMText的集合。 要获取元素的文本值,您需要调用方法getTextContent(),getNodeValue将始终返回NULL。 从概念上讲,这是另一种更好的方法,因为DOMText是DOMElement的子级,我们可以遍历子级节点并获取值。
下面是方法形式的逻辑:
string getElementValue(const DOMElement& parent)
{
DOMNode *child;
string strVal;
for (child = parent.getFirstChild();child != NULL ; child = child->getNextSibling())
{
if(DOMNode::TEXT_NODE == child->getNodeType())
{
DOMText* data = dynamic_cast<DOMText*>(child);
const XMLCh* val = data->getWholeText();
strVal += XMLString::transcode(val);
}
else
{
throw "ERROR : Non Text Node";
}
}
return strVal;
}
希望这可以帮助 :)
跟随我:
http://mycpplearningdiary.blogspot.com/From: https://bytes.com/topic/net/insights/931067-xerces-getnodevalue-confussion