读取Xml: RapidXml

前端之家收集整理的这篇文章主要介绍了读取Xml: RapidXml前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

不管我们是开发 App 还是开发游戏。 视图都是一个非常重要的概念。

在App中的视图,可能是一些控件。 在游戏里,视图就是 场景,精灵等场景中的Node。

不管如何,如果有大量的控件或者场景Node需要我们去创建或者 布局,就太费劲了。


因此,有时候,我们可以用xml来配置,而程序中只需 读取这些xml文件,就方便多了。


下面介绍一种常用的 RapidXml


RapidXml :
@H_404_38@
解析xml文件 @H_404_38@
首先,通过文件读取IO流, @H_404_38@

@H_404_38@
然后,将IO流,转换为char数组 buffer @H_404_38@

@H_404_38@
解析buffer内的数据 @H_404_38@

@H_404_38@
创建xml doc: @H_404_38@
xml_doument<> doc; @H_404_38@
解析数据: @H_404_38@
doc.parse<0>(buffer), 0 是按照默认方式进行解析 @H_404_38@
@H_404_38@
xml的 构成: @H_404_38@
xml_node<>: @H_404_38@
@H_404_38@
xml_attribute<> @H_404_38@
@H_404_38@
包含关系: @H_404_38@
xml_node<> 包含 xml_attribute<> @H_404_38@

@H_404_38@
xml_attribute<>是 键值对的形式: @H_404_38@
name 对应一个属性值 @H_404_38@
@H_404_38@
@H_404_38@

@H_404_38@
获取根节点: @H_404_38@
xml_node<> *root_node = doc.first_node() @H_404_38@

@H_404_38@
如果找某个名字的节点: @H_404_38@
xml_node<> *nameNode = root_node->first_node("name"); @H_404_38@
找同一个名字的其它节点: @H_404_38@
xml_node<> *anotherNode = nameNode->next_sibling(); @H_404_38@

@H_404_38@
如果找某个节点的 某个名字的属性 @H_404_38@
方法可以参考 找某个名字的节点 @H_404_38@

@H_404_38@
得到属性的值: @H_404_38@
调用其value方法。 @H_404_38@ @H_404_38@

@H_404_38@
—————————————————— @H_404_38@ @H_404_38@

猜你在找的XML相关文章