// cur->name 此时返回“文本”,这很奇怪,但除此之外
这是因为节点之间的空白很重要,即使我们通常不这么认为。
那个
text
节点是换行符以及 <map>
和 <export>
之间的两个空格。
我认为每个节点都会连接到下一个节点,但情况似乎并非如此,它在第一组子节点之后停止。
这是因为 DOM 是分层的,而不是线性的。当您处于
<region>
时,您可以进入其 node->children
,并继续检查 node->next
,直到到达 <floor>
,依此类推...
或者,您可以使用 XPath,只需对
map/region/floor/tiles
执行 XPath 查询,它就会为您提供图块节点。
libxml2 示例列表中有一个使用 XPath 的示例