使用TinyXML迭代整个XML文件

时间:2018-01-28 14:04:47

标签: c++ xml tinyxml

我有一些XML文件,但有一个问题。我的XML"树"没看一眼。我的意思是一旦它看起来像:

<one>
 <two>
  <three></three>
 </two>
 <four>
  <five>
   <six></six>
  </five>
  <seven></seven>
 </four>
</one>

但第二次看起来会有所不同。 有没有办法用TinyXML迭代整个文件和cout如:

三:文字

六:文字

七:文字

我看到像&#34这样的例子;我必须按照他的名字搜索元素&#34;,但如果我不知道名字,解决方案是什么?

我问,因为我已经编写了这样做的程序,但只是像NextSiblingElement()一样,就像第一个孩子,第一个孩子一样,当它转到&#34;父母的最后一个孩子&# 34;然后检查那个孩子是否有兄弟,然后停止。所以想象一下这个例子:它来自&#34;一个&#34;到&#34;两个&#34;来自&#34;两个&#34;到&#34;三&#34; &#34;三个没有孩子,所以检查它是否有兄弟。没有?然后停下来,不会去四,五等等。我的错误在哪里?

TiXmlNode* element = doc.FirstChildElement();
TiXmlNode* element_parent = doc.FirstChildElement();
element = element_parent;

while (element != NULL) {
    std::cout << element->Value() << std::endl;

    if (element->FirstChildElement() == NULL) {
        element = element->NextSibling();
    }
    else {
        element = element->FirstChildElement();
    }

    if (element == NULL) {
        element = element_parent->NextSibling();
        element_parent = element_parent->NextSibling();
    }
}

0 个答案:

没有答案