XML的简单学习(一个优秀的mini库…
2014-06-25 13:21
316 查看
废话也不多说了,不懂XML的可以先看一下DOM,这里不再复述。
直入主题:
分为两种方法:
第一种方法:定义属性Attribute
首先,看test.xml
<Root>
<Textures>
<Texture px="456" py="312" lx="320" ly="200"
ap="1"/>
</Textures>
</Root>
C++文件中的运行:
在head中先定义一个数组:float testPicture_[5];
在cpp中:
void TiXml()
{
TiXmlDocument doc("test.xml");//定义test.xml文件
bool loadOk = doc.LoadFile();//获取
if (!loadOk)
{
printf("load false!");
exit(-1);
}
TiXmlElement* rootElement =
doc.FirstChildElement("Root");//root
TiXmlElement* texturesElement =
rootElement->FirstChildElement("Textures");//Textures
TiXmlAttribute* attrOfTexture =
texturesElement->FirstChildElement()->FirstAttribute();//获得Texture的px属性
while(attrOfTexture)//在Texture的属性中循环,否则跳出
{
for (int i = 0; i<5; ++i)
{
testPicture_[i] =
atof(attrOfTexture->Value());//获取相应属性值
attrOfTexture =
attrOfTexture->Next();//切换至下一个属性
printf("%.2f\n", testPicture_[i]);//输出标记
}
}
}
第二种方法:直接定义节点元素方法
首先是test.xml
<Root>
<Textures>
<positionX>456</positionX>
<positionY>312</positionY>
<lengthX>320</lengthX>
<lengthY>200</lengthY>
<alpha>1</alpha>
</Textures>
</Root>
然后一样在head中定义数组:float
testPicture_[5];
在cpp中:
void TiXml()
{
TiXmlDocument doc("test.xml");
bool loadOk = doc.LoadFile();
if (!loadOk)
{
printf("load false!");
exit(-1);
}
TiXmlElement* rootElement =
doc.FirstChildElement("Root");//root
TiXmlElement* texturesElement =
rootElement->FirstChildElement("Textures");//Textures
if(texturesElement)
{
testPicture_[0] =
atof(texturesElement->FirstChildElement("positionX")->GetText());
testPicture_[1] =
atof(texturesElement->FirstChildElement("positionY")->GetText());
testPicture_[2] =
atof(texturesElement->FirstChildElement("lengthX")->GetText());
testPicture_[3] =
atof(texturesElement->FirstChildElement("lengthY")->GetText());
testPicture_[4] =
atof(texturesElement->FirstChildElement("alpha")->GetText());
}
}
节点元素则比较容易理解,但是调用和配置文件中写起来比较麻烦,各自所需嘛。
错误之处,还望指出谢谢!
如需转载,请注明出处http://blog.sina.com.cn/s/blog_9abbd7920101a80w.html
直入主题:
分为两种方法:
第一种方法:定义属性Attribute
首先,看test.xml
<Root>
<Textures>
<Texture px="456" py="312" lx="320" ly="200"
ap="1"/>
</Textures>
</Root>
C++文件中的运行:
在head中先定义一个数组:float testPicture_[5];
在cpp中:
void TiXml()
{
TiXmlDocument doc("test.xml");//定义test.xml文件
bool loadOk = doc.LoadFile();//获取
if (!loadOk)
{
printf("load false!");
exit(-1);
}
TiXmlElement* rootElement =
doc.FirstChildElement("Root");//root
TiXmlElement* texturesElement =
rootElement->FirstChildElement("Textures");//Textures
TiXmlAttribute* attrOfTexture =
texturesElement->FirstChildElement()->FirstAttribute();//获得Texture的px属性
while(attrOfTexture)//在Texture的属性中循环,否则跳出
{
for (int i = 0; i<5; ++i)
{
testPicture_[i] =
atof(attrOfTexture->Value());//获取相应属性值
attrOfTexture =
attrOfTexture->Next();//切换至下一个属性
printf("%.2f\n", testPicture_[i]);//输出标记
}
}
}
第二种方法:直接定义节点元素方法
首先是test.xml
<Root>
<Textures>
<positionX>456</positionX>
<positionY>312</positionY>
<lengthX>320</lengthX>
<lengthY>200</lengthY>
<alpha>1</alpha>
</Textures>
</Root>
然后一样在head中定义数组:float
testPicture_[5];
在cpp中:
void TiXml()
{
TiXmlDocument doc("test.xml");
bool loadOk = doc.LoadFile();
if (!loadOk)
{
printf("load false!");
exit(-1);
}
TiXmlElement* rootElement =
doc.FirstChildElement("Root");//root
TiXmlElement* texturesElement =
rootElement->FirstChildElement("Textures");//Textures
if(texturesElement)
{
testPicture_[0] =
atof(texturesElement->FirstChildElement("positionX")->GetText());
testPicture_[1] =
atof(texturesElement->FirstChildElement("positionY")->GetText());
testPicture_[2] =
atof(texturesElement->FirstChildElement("lengthX")->GetText());
testPicture_[3] =
atof(texturesElement->FirstChildElement("lengthY")->GetText());
testPicture_[4] =
atof(texturesElement->FirstChildElement("alpha")->GetText());
}
}
节点元素则比较容易理解,但是调用和配置文件中写起来比较麻烦,各自所需嘛。
错误之处,还望指出谢谢!
如需转载,请注明出处http://blog.sina.com.cn/s/blog_9abbd7920101a80w.html
相关文章推荐
- ASP.NET学习小结(1)--Cookie,XML(建立xml文档,和查找一个结点)
- 一个简单的build.xml
- 一个简单的XML解析器代码
- 一个简单的XML例子
- Java开发学习笔记之二:一个简单的Servlet
- 通过一个简单的SWING日历BEAN开发学习Calendar类的使用(1)Calendar概述
- 通过制作一个简单的时钟学习WPF中DispatcherTimer的使用 Level 100
- [BizTalk][Adapter][部署]BTS学习笔记1:建立一个简单的Biztalk数据交换项目(一)
- c++学习:一个简单的类
- XML技术学习(一):DTD语法概述及简单应用举例
- 一个显示日期的简单小程序,主要是学习静态变量的用法
- 一个SAX解析xml的简单程序。
- BPEL学习:创建一个简单的流程
- 一个最最简单的xml sax writer.
- 【Rebol 学习笔记】第一篇:编写一个简单的 CGI 程序
- FlashCom学习第二课:创建一个使用视频的简单的Flash动画
- [Struts]学习日记1 - 一个简单的例子
- 学习C++时候写的一个简单Array类
- 学习XML(修改一个节点)
- Asp+xml===》制作个简单的留言本 三个asp文件,与一个xml