加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

TinyXML来操作XML文件(C++)

发布时间:2020-12-15 23:09:10 所属栏目:百科 来源:网络整理
导读:XML 文件 ( Extensible Markup Language 可扩展标记语言 ) 1) 元标记语言,所谓“元标记”就是用户可自定义,而 HTML 是预定义的,不允许自定义 2) 语义 / 结构化语言,可描述文档的结构和语义 3) 数据交换,因为它是跨平台的,跨系统、跨应用程序,所以

XML文件

Extensible Markup Language可扩展标记语言)

1) 元标记语言,所谓“元标记”就是用户可自定义,而HTML是预定义的,不允许自定义

2) 语义/结构化语言,可描述文档的结构和语义

3) 数据交换,因为它是跨平台的,跨系统、跨应用程序,所以就可以将这个数据很方便的将一个数据在两个应用程序间交换

4) 结构化数据,可以定义一个book元素必须有name属性

注意:XMLHTML是不同的两个概念

HTML——强调显示数据,不能自定义标记,且可用的标记较少

XML——强调数据的存储、传输。可自定义标记,语法简单

XML文档 = DTD + XML文本

DTD——Document Type Definition(文档定义类型),一组标记符语法规则,规定XML文本的组成结构,当然该文件可有可无

XML的显示——借助于XSLXML Style Language)、CSSCascading Style Sheets层叠样式表)来显示

XML只是简单存储数据,而没有定义表达,所以XML很好的将内容与形式分开,同一内容会有很多表达形式

XML文件的创建与读取

void CreateXML(char * strFileName)
{
	TiXmlDocument *pDoc = new TiXmlDocument(strFileName);//创建XML文档指针
	if (pDoc == NULL)
	{
		return ;
	}
	TiXmlDeclaration *pDeclaration = new TiXmlDeclaration("1.0","","");//xml声明
	if (pDeclaration == NULL)
	{
		return;
	}
	pDoc->LinkEndChild(pDeclaration);

	TiXmlElement *pRoot = new TiXmlElement("Root");//new出结点
	if (pRoot == NULL)
	{
		return;
	}
	pDoc->LinkEndChild(pRoot);//将结点与最底层文件pDoc关联起来,成为根节点
    //创建孩子节点
	TiXmlElement *pChild = new TiXmlElement("Child");
	if(pChild == NULL)
		return ;
	pRoot->LinkEndChild(pChild);//与根节点关联,成为根节点下的孩子结点
	//对属性进行赋值
	//way1:
	TiXmlText *pValue = new TiXmlText("Book");
	pRoot->LinkEndChild(pValue);
	//Way2:
	pChild->SetAttribute("name","China");
	pChild->SetAttribute("price","unknow");
   
	pDoc->SaveFile(strFileName);
    
	delete pDoc;
	pDoc = NULL;

}
void PrintXML(char *strFileName)
{
	TiXmlDocument *pDoc = new TiXmlDocument(strFileName);
	if (pDoc == NULL)
	{
		return;
	}
	pDoc->LoadFile(strFileName);
	pDoc->Print();
}

所生成的xml文件如下:

<?xml version="1.0" ?>
<Root>
<Child name="China" price="unknow" />Book
</Root>

后续会有xml文件增加节点与删除节点,读取某节点属性值操作,敬请期待>>>

文章参考:http://blog.csdn.net/clever101

【热爱工作,热爱生活】

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读