TiXmlDeclaration TiXmlDeclaration LinkEndChild
来源:互联网 发布:模仿声音软件下载 编辑:程序博客网 时间:2024/06/08 16:15
下面我用个简单的例子说明如何使用tinyXML操作xml文件。在讲例子之前我先说说tinyXML中主要类和xml文档之间的对应关系。下面是tinyXML中主要class的类图,反应各个类之间的静态关系。
引用来自tinyXML文档
TiXmlBase是所有类的基类,TiXmlNode、TiXmlAttribute两个类都继承来自TiXmlBase类,其中TiXmlNode类指的是所有被<...>...<.../>包括的内容,而xml中的节点又具体分为以下几方面内容,分别是声明、注释、节点以及节点间的文本,因此在TiXmlNode的基础上又衍生出这几个类TiXmlComment、TiXmlDeclaration、TiXmlDocument、TiXmlElement、TiXmlText、TiXmlUnknown,分别用来指明具体是xml中的哪一部分。TiXmlAttribute类不同于TiXmlNode,它指的是在尖括号里面的内容,像<... ***=...>,其中***就是一个属性。这块我具体用一个xml文档说明一下,内容如下:
引用来自tinyXML文档
TiXmlBase是所有类的基类,TiXmlNode、TiXmlAttribute两个类都继承来自TiXmlBase类,其中TiXmlNode类指的是所有被<...>...<.../>包括的内容,而xml中的节点又具体分为以下几方面内容,分别是声明、注释、节点以及节点间的文本,因此在TiXmlNode的基础上又衍生出这几个类TiXmlComment、TiXmlDeclaration、TiXmlDocument、TiXmlElement、TiXmlText、TiXmlUnknown,分别用来指明具体是xml中的哪一部分。TiXmlAttribute类不同于TiXmlNode,它指的是在尖括号里面的内容,像<... ***=...>,其中***就是一个属性。这块我具体用一个xml文档说明一下,内容如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <phonebook>
- <!--one item behalfs one contacted person.-->
- <item>
- <name>miaomaio</name>
- <addr>Shaanxi Xi'an</addr>
- <tel>13759911917</tel>
- <email>miaomiao@home.com</email>
- </item>
- <item>
- <name>gougou</name>
- <addr>Liaoning Shenyang</addr>
- <tel>15840330481</tel>
- <email>gougou@home.com</email>
- </item>
- <!--more contacted persons.-->
- </phonebook>
- 像TiXmlDeclaration指的就是<?xml version="1.0" encoding="UTF-8"?>,
- 像TiXmlComment指的就是<!--one item behalfs one contacted person.-->、 <!--more contacted persons.-->,
- 像TiXmlDocument指的就是整个xml文档,
- 像TiXmlElement指的就是<phonebook>、<item>、<name>、<addr>等等这些节点,
- 像TiXmlText指的就是‘gougou’、‘15840330481’这些夹在<item>与</item>、<name>与</name>、<addr>与</addr>之间的文本文字,
- 像TiXmlAttribute指的就是<?xml version="1.0" encoding="UTF-8"?>节点中version、encoding,
- 除此之外就是TiXmlUnknown。
int Write()
{
TiXmlDocument doc ;
TiXmlDeclaration *declare =new TiXmlDeclaration("1.0" , "","");
doc.LinkEndChild(declare);
doc.LinkEndChild(new TiXmlComment("群英集团人力资源表"));
TiXmlElement *root = new TiXmlElement("群英集团");
TiXmlElement *sub = new TiXmlElement("员工");
sub->SetAttribute("ID" , "011"); // 向sub中添加属性
sub->SetAttribute("职位" , "技术总监");
TiXmlElement *child = new TiXmlElement("姓名"); // 建立子元素
TiXmlText *content =new TiXmlText("虚竹"); // 建立文本
child->LinkEndChild(content); // 将建立的文本追加到child所指的子元素中
sub->LinkEndChild(child); // 将child追加到sub中,以作为子元素
root->LinkEndChild(sub); // 将sub追加到root中,以作为子元素
sub = new TiXmlElement("员工");
sub->SetAttribute("ID" , "029");
sub->SetAttribute("职位" , "技术总监");
child = new TiXmlElement("姓名");
content =new TiXmlText("乔峰");
child->LinkEndChild(content);
sub->LinkEndChild(child);
root->LinkEndChild(sub);
sub = new TiXmlElement("员工");
sub->SetAttribute("ID" , "100");
sub->SetAttribute("职位" , "总架构师");
child = new TiXmlElement("姓名");
content =new TiXmlText("扫地僧");
child->LinkEndChild(content);
sub->LinkEndChild(child);
root->LinkEndChild(sub);
sub = new TiXmlElement("员工");
sub->SetAttribute("ID" , "101");
sub->SetAttribute("职位" , "公关部经理");
child = new TiXmlElement("姓名");
content =new TiXmlText("韦小宝");
child->LinkEndChild(content);
sub->LinkEndChild(child);
root->LinkEndChild(sub);
sub = new TiXmlElement("员工");
sub->SetAttribute("ID" , "102");
sub->SetAttribute("职位" , "人事部经理");
child = new TiXmlElement("姓名");
content =new TiXmlText("黄蓉");
child->LinkEndChild(content);
sub->LinkEndChild(child);
root->LinkEndChild(sub);
doc.LinkEndChild(root);
doc.SaveFile("WriteTest.xml");
return 0;
}
{
TiXmlDocument doc ;
TiXmlDeclaration *declare =new TiXmlDeclaration("1.0" , "","");
doc.LinkEndChild(declare);
doc.LinkEndChild(new TiXmlComment("群英集团人力资源表"));
TiXmlElement *root = new TiXmlElement("群英集团");
TiXmlElement *sub = new TiXmlElement("员工");
sub->SetAttribute("ID" , "011"); // 向sub中添加属性
sub->SetAttribute("职位" , "技术总监");
TiXmlElement *child = new TiXmlElement("姓名"); // 建立子元素
TiXmlText *content =new TiXmlText("虚竹"); // 建立文本
child->LinkEndChild(content); // 将建立的文本追加到child所指的子元素中
sub->LinkEndChild(child); // 将child追加到sub中,以作为子元素
root->LinkEndChild(sub); // 将sub追加到root中,以作为子元素
sub = new TiXmlElement("员工");
sub->SetAttribute("ID" , "029");
sub->SetAttribute("职位" , "技术总监");
child = new TiXmlElement("姓名");
content =new TiXmlText("乔峰");
child->LinkEndChild(content);
sub->LinkEndChild(child);
root->LinkEndChild(sub);
sub = new TiXmlElement("员工");
sub->SetAttribute("ID" , "100");
sub->SetAttribute("职位" , "总架构师");
child = new TiXmlElement("姓名");
content =new TiXmlText("扫地僧");
child->LinkEndChild(content);
sub->LinkEndChild(child);
root->LinkEndChild(sub);
sub = new TiXmlElement("员工");
sub->SetAttribute("ID" , "101");
sub->SetAttribute("职位" , "公关部经理");
child = new TiXmlElement("姓名");
content =new TiXmlText("韦小宝");
child->LinkEndChild(content);
sub->LinkEndChild(child);
root->LinkEndChild(sub);
sub = new TiXmlElement("员工");
sub->SetAttribute("ID" , "102");
sub->SetAttribute("职位" , "人事部经理");
child = new TiXmlElement("姓名");
content =new TiXmlText("黄蓉");
child->LinkEndChild(content);
sub->LinkEndChild(child);
root->LinkEndChild(sub);
doc.LinkEndChild(root);
doc.SaveFile("WriteTest.xml");
return 0;
}
输出效果:
<?xml version="1.0" ?>
<!--群英集团人力资源表-->
<群英集团>
<员工 ID="011" 职位="技术总监">
<姓名>虚竹</姓名>
</员工>
<员工 ID="029" 职位="技术总监">
<姓名>乔峰</姓名>
</员工>
<员工 ID="100" 职位="总架构师">
<姓名>扫地僧</姓名>
</员工>
<员工 ID="101" 职位="公关部经理">
<姓名>韦小宝</姓名>
</员工>
<员工 ID="102" 职位="人事部经理">
<姓名>黄蓉</姓名>
</员工>
</群英集团>
<!--群英集团人力资源表-->
<群英集团>
<员工 ID="011" 职位="技术总监">
<姓名>虚竹</姓名>
</员工>
<员工 ID="029" 职位="技术总监">
<姓名>乔峰</姓名>
</员工>
<员工 ID="100" 职位="总架构师">
<姓名>扫地僧</姓名>
</员工>
<员工 ID="101" 职位="公关部经理">
<姓名>韦小宝</姓名>
</员工>
<员工 ID="102" 职位="人事部经理">
<姓名>黄蓉</姓名>
</员工>
</群英集团>
0 0
- TiXmlDeclaration TiXmlDeclaration LinkEndChild
- tinyxml源码剖析(4)-TiXmlComment、TiXmlDeclaration、TiXmlDocument、TiXmlElement、TiXmlTest和TiXmlUnknown
- Linux-(4)Linux时间和日期
- spring 错误
- 快速排序的思想分析
- 如何使用c#上传图片,图片是base64编码的字符串
- Javascript学习笔记5 - 滑动Slides
- TiXmlDeclaration TiXmlDeclaration LinkEndChild
- Android Studio常用操作技巧(不断更新)
- Linux系统下如何查看物理内存占用率
- Path Sum
- Date类学习总结(Calendar Date 字符串 相互转换 格式化)
- android 基础知识总结
- 2015暑期实习生招聘阿里一面面试题之如何判判树是否为二叉搜索树 如何利用前序中序建二叉树
- hadoop(1)
- 在开发的时候脚本语言用的最多了,写点JavaScript的一写需要注意的地方 后续