使用 tinyxml 创建 xml
Create xml using tinyxml
>我有一个问题。我需要创建一个以下 xml:
<?xml version="1.0" encoding="utf-8"?>
<MyApp value="5" name="me">
</MyApp>
使用c ++代码,我做了以下工作:
#include <iostream>
#include <string>
#include "tinyxml.h"
void main(){
TiXmlDocument doc;
TiXmlDeclaration * decl = new TiXmlDeclaration( "1.0", "utf-8", "");
doc.LinkEndChild( decl );
TiXmlElement * root;
root = new TiXmlElement( "MyApp" );
root->SetAttribute("value","5");
root->SetAttribute("name","me");
doc.LinkEndChild( root );
doc.SaveFile( "madeByHand.xml" );
return 0;
}
我使用 g++ tinyxml.cpp tinyxmlerror.cpp 和 tinyxmlparser.cpp 编译它。当我想查看我创建的 xml 时。我有一个错误:它说它不是直写的。我错在哪里?:)
以防万一有人需要这样的XML文件结构:
<?xml version="1.0" ?>
<Hello>Opening a new salutation
<Greeting value="5" name="me"></Greeting>
</Hello>
_
所以这是这个代码:
_
TiXmlDocument doc;
TiXmlDeclaration* decl = new TiXmlDeclaration( "1.0", "", "" );
doc.LinkEndChild( decl );
TiXmlElement* element = new TiXmlElement( "Hello" );
doc.LinkEndChild( element );
TiXmlText* text = new TiXmlText( "Opening a new salutation" );
element->LinkEndChild( text );
TiXmlElement* element2 = new TiXmlElement( "Greeting" );
element2->SetAttribute("value","5");
element2->SetAttribute("name","me");
element->LinkEndChild( element2 );
TiXmlText* text2 = new TiXmlText( "" );
element2->LinkEndChild( text2 );
doc.SaveFile( "madeByHand2.xml" );
_
还有一个选项如何使用循环添加多个元素(对于/while):
_
<?xml version="1.0" ?>
<Hello>Opening a new salutation
<Greeting value="5" name="me"></Greeting>
<Greeting value="5" name="me"></Greeting>
<Greeting value="5" name="me"></Greeting>
</Hello>
_
这是代码:
_
TiXmlDocument doc;
TiXmlDeclaration* decl = new TiXmlDeclaration( "1.0", "", "" );
doc.LinkEndChild( decl );
TiXmlElement* element = new TiXmlElement( "Hello" );
doc.LinkEndChild( element );
TiXmlText* text = new TiXmlText( "Opening a new salutation" );
element->LinkEndChild( text );
for(long i=0; i<3; i++)
{
TiXmlElement* element2 = new TiXmlElement( "Greeting" );
TiXmlText* text2 = new TiXmlText( "" );
element2->SetAttribute("value","5");
element2->SetAttribute("name","me");
element->LinkEndChild( element2 );
element2->LinkEndChild( text2 );
}
doc.SaveFile( "madeByHand2.xml" );
您正在尝试将C++用作某种类型的脚本。您必须创建一个放置生产代码的main()
函数。
#include <iostream>
#include <string>
#include "tinyxml.h"
void main()
{
TiXmlDocument doc;
TiXmlDeclaration * decl = new TiXmlDeclaration( "1.0", "utf-8", "");
doc.LinkEndChild( decl );
TiXmlElement * root;
root = new TiXmlElement( "MyApp" );
root->SetAttribute("value","5");
root->SetAttribute("name","me");
doc.LinkEndChild( root );
doc.SaveFile( "madeByHand.xml" );
}
当然,编译后,您必须从命令行启动应用程序。
也许,你错过了" #include "tinystr.h" "?
您必须将tinyxmlparser.cpp tinyxmlerror.cpp tinyxml.cpp tinyxml.h tinystr.cpp tinystr.h 添加到您的项目中
相关文章:
- 如何手动创建具有不同 XML 属性的提升 ptree
- 用于创建使用XML中定义的GUI的C 本机应用程序的库
- 从文本文件/XML文件创建C++类
- 在 CC++ 中使用 XML 创建 GUI
- XML从UnicodeString创建CData节点时出现无效字符
- 使用 XmlLite IXmlWriter (C++) 在 prolog 中创建不带编码属性的 XML
- 为什么两个"Start (Without) Debugging"(F5 和 Ctrl+F5)都不创建 CppUnit *.xml 报告文件?
- 如何使用C++创建工具来分析 XML 文件
- 使用XPath创建XML节点
- 如何通过级联QML在blackberry 10设备文档目录中创建XML文件
- xerces_3_1能够在注释和处理指令中创建无效的 xml
- 流式/渐进式C++XML创建库
- 如何创建一个C/ c++程序,生成XML并在之后运行DOS命令
- 如何在c++中创建XML::Linq XElement,而不是c#
- 使用libxml和c++创建我的xml时,关于UTF_8格式的错误
- 可编程创建的tinyxml xml文件在Internet Explorer中无法加载
- 如何使用boost property_tree创建XML
- 如何手动创建带有XML属性的boost ptree
- 使用 tinyxml 创建 xml
- 需要帮助递归地使用Boost属性树库和XML创建目录树