避免tinyxml上的标签

时间:2016-04-12 17:47:33

标签: c++ xml tinyxml

我正在使用tinyXML来解析我的XML文档,但我遇到了问题,因为我不是它的专家。

考虑这种XML结构:

    <element>
      <element1>
        text1
        <element2>...</element2>
        text4
      </element1>
      <element3>
        text2
        <element4>...</element4>
        text3
      </element3>
    </element>

我知道在element1上有文字和很多元素(我不知道有多少)。如何在element1上获取所有文本,忽略其间的元素?

我尝试使用我想要的元素并使用getText(),但它只获取文本,直到下一个元素(在这种情况下为element2),丢失其余文本。

所以,这是我尝试的第一个解决方案:

void iterate(TiXmlNode* body) {

TiXmlNode* child;

for (child = body->FirstChild(); child; child = child->NextSibling())
{       
    if (child->Type() == TiXmlNode::TINYXML_TEXT)
        cout << child->Value() << endl;
    if (child->FirstChild())iterate(child->FirstChild());

    }
    return;
}

该函数用于迭代主节点的所有子节点和主节点的孙子节点(如果有的话)

它有点有用,但不是100%。现在它只输出text1,然后跳转到text2它不会显示text3text4也不会在标记element2element4之间显示文字(如果有的话)

编辑。它现在已经完成了100%的功能。

0 个答案:

没有答案