目前我正在通过c和c ++解析xml
im使用c ++中的pugixml库和c语言中的libxml2库来解析xml
假设我在xml中有根元素作为“配置”,并且它有4个子元素,分别是protocolversion,服务器名,daqlist和设备。
现在,我可以通过使用该根来获得根元素(配置),我想移动其特定的子代(设备)而不是一个一个地移动。
在使用pugixml的C ++中,我们有以下行直接从配置移至其子设备, doc.child(“ Configuration”)。child(“ device”)。
在c语言中,通过使用libxml我只移动了一个孩子, 如果cur节点是根节点(配置),则即时通讯使用, cur = cur-> children-> next-> next-> next-> next-> next-> next-> next-> next-> next(用于从配置移动到设备)
我不想接下来移动。 我想通过libxml将简单函数从当前移动到c中的特定节点。 有人可以帮助解决这个问题吗??
答案 0 :(得分:0)
->next->next...
方法假定节点的布局固定并且不可靠。我建议你:
child->type == XML_ELEMENT_NODE
和strcmp((char *)child->name, "device") == 0
xmlStrcmp(child->name, BAD_CAST "device") == 0
/configuration/device
匹配的节点