1

我有一个看起来像这样的 xml 文件

<library>
    <book name="ABC">
        <chapter val="1"/>
            ...
    </book>
            ...
    <book id="123">
        <page val="567"/>
            ...
    </book>
</library>

我正在使用 tinyxml 来解析这个 xml 文件。我正在用 C++ 做这个。我想选择“章节”元素,这是我的代码...

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,如果我使用了错误的术语,我深表歉意,如果我需要进一步解释自己,请告诉我。

提前致谢。

4

2 回答 2

3

如果 XML 树与您显示的完全一样,这将不起作用,因为您仍在选择第一个book元素,它没有page子元素。

于 2012-02-23T18:50:20.753 回答
2

因为 book 的第一个 Child 没有 page 元素。第二个孩子会

于 2012-02-23T18:50:38.163 回答