这个问题与check for variable number of sibling nodes & different siblings in Rapidxml略有不同。在我在网上找到的大多数示例中,我看到了硬编码密钥,例如:
xml_node<>* root = doc.first_node("rootnode");
这里“rootnode”是硬编码的。我的情况略有不同,因为解析和标记已经由rapidxml完成。我需要知道解析器读取的名称,通过迭代节点及其兄弟而不知道硬编码名称和节点的深度。我正在寻找关于rapidxml树的某种递归导航的建议/解决方案。
谢谢。
答案 0 :(得分:2)
根据RapidXml的文档(see here),first_node()
方法中的节点名称参数是可选的。您可以省略该参数,您将获得第一个子节点,无论其名称如何:
xml_node<>* root = doc.first_node();
然后,您可以通过调用其name()
方法获取节点名称。