我正在尝试在 C++ 中使用 RapidXML 解析 XML 文件,该文件类似于:
<root>
<a>
<b>1111</b>
<c>
<d1>2222</d1>
<d2>3333</d2>
</c>
</a>
</root>
要识别我正在做的父节点:
if (currentNode->first_node() != 0) { // this node has children, search for them }
它适用于前两个节点(根和 a),但是当我为节点“b”执行此操作时,它返回一个指向某处而不是 0 的指针,但“b”没有子节点。它不应该返回0吗?RapidXML 文档说:
函数 xml_node::first_node 概要
xml_node<Ch>* first_node(const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const;
描述 获取第一个子节点,可选择匹配节点名称。
参数 name 要查找的孩子的名称,或 0 以返回第一个孩子,无论其名称如何;如果 name_size 不为零,则此字符串不必以零结尾
name_size 名称的大小,以字符为单位,或 0 以从字符串自动计算大小
case_sensitive 名称比较是否应该区分大小写;不区分大小写的比较仅适用于 ASCII 字符
返回 指向找到的孩子的指针,如果没有找到,则返回 0。
知道为什么会发生这种情况或我做错了什么吗?
谢谢