我有一个看起来像这样的
的xml文件<library>
<book name="ABC">
<chapter val="1"/>
...
</book>
...
<book id="123">
<page val="567"/>
...
</book>
</library>
我使用tinyxml来解析这个xml文件。我在C ++中这样做。我想选择'chapter'元素,这是我的代码......
TiXmlDocument doc;
TiXmlHandle XMLFileHandle( &doc);
TiXmlElement* Book1Element = XMLFileHandle.FirstChild("library").FirstChild("book").FirstChild("chapter").FirstChild.ToElement();
它有效。但是,当我尝试选择“页面”元素时,它的工作方式不同。
TiXmlElement* Book2Element = XMLFileHandle.FirstChild("library").FirstChild("book").FirstChild("page").FirstChild.ToElement();
为什么?我有一种感觉,因为一个book元素按名称有一个属性,另一个book元素有一个id属性。
这是我第一次处理xml和tinyxml,如果我使用了错误的术语,我道歉,如果我需要进一步解释自己,请告诉我。
先谢谢。
答案 0 :(得分:3)
如果XML树与您显示的完全相同,那么这不会起作用,因为您仍在选择第一个book
元素,该元素没有page
子元素。
答案 1 :(得分:2)
因为书的第一个孩子没有页面元素。第二个孩子