解析tinyXML2中的注释

时间:2017-04-09 09:54:12

标签: c++ tinyxml2

解析XML注释时遇到问题。我怎样才能正确地发表评论? 或者甚至可以用tinyXML2阅读评论?

<xml>
<foo> Text <!-- COMMENT --> <foo2/></foo>
</xml>

我创造了     XMLElement *root = xmlDoc->FirstChildElement("foo"); XMLElement *child = root->FirstChildElement();

从子元素我得到foo2元素,什么是从文件中读取注释元素的propper方式。

谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用XMLNode::FirstChild()XMLNode::NextSibling()循环遍历所有子节点。使用dynamic_cast测试节点是否为注释。

if( const XMLElement *root = xmlDoc->FirstChildElement("foo") )
{
    for( const XMLNode* node = root->FirstChild(); node; node = node->NextSibling() )
    {
        if( auto comment = dynamic_cast<const XMLComment*>( node ) )
        {
            const char* commentText = comment->Value();
        }   
    }
}

我只是通过阅读documentation来解决这个问题,因此代码中可能存在错误。