TinyXML2使用方法

1.加载文件
tinyxml2::XMLDocument document;
if (document.LoadFile(filename.c_str()) != tinyxml2::XML_SUCCESS )
{
printf(“gg”);
//load不成功
//有可能是文件路径错误,也有可能是文件格式错误
}

2.获取根节点
const tinyxml2::XMLElement* root_node = document.RootElement();

3.节点的一些操作
node->Value() //获取节点的名称
node->GetText() //获取节点里面的文本,但是不包含里面的节点
对于下面的这段xml


 111
  222 
 333

node->Value()得到的是

 aaa

node->GetText()得到的是

\n 111\n \n

注意上面的\n是换行符

4.节点的查找
node->FirstChildElement() //获取第一个孩子
node->FirstChildElement(“aaa”); //获取第一个名为aaa的孩子
node->NextSiblingElement() ; //获取下一个的兄弟
node->NextSiblingElement(“aaa”) ; //获取下一个名为aaa的兄弟
node->PreviousSibling(“aaa”)//获取上一个名为aaa的兄弟
node->Parent(); //获取父节点
以上四个函数若找不到则返回NULL

5.属性
attr->Name() //属性名
attr->Value() //属性值
TiXmlAttribute* node->FirstAttribute() //获取第一个属性
TiXmlAttribute* node-> LastAttribute() //获取最后一个属性

const std::string* Attribute( const std::string& name ) const;
const std::string* Attribute( const std::string& name, int* i ) const;
const std::string* Attribute( const std::string& name, double* d ) const;
在上面3个函数中,第一个函数使用字符串保存返回的属性值,第二个函数把属性值转换为整数然后返回,第三个函数把属性值转换为浮点数然后返回。不过,第二、三个函数都会以字符串的形式记录属性值,并作为函数的返回值返回。

6.错误代码
enum XMLError {
XML_SUCCESS = 0,
XML_NO_ATTRIBUTE,
XML_WRONG_ATTRIBUTE_TYPE,
XML_ERROR_FILE_NOT_FOUND,
XML_ERROR_FILE_COULD_NOT_BE_OPENED,
XML_ERROR_FILE_READ_ERROR,
UNUSED_XML_ERROR_ELEMENT_MISMATCH, // remove at next major version
XML_ERROR_PARSING_ELEMENT,
XML_ERROR_PARSING_ATTRIBUTE,
UNUSED_XML_ERROR_IDENTIFYING_TAG, // remove at next major version
XML_ERROR_PARSING_TEXT,
XML_ERROR_PARSING_CDATA,
XML_ERROR_PARSING_COMMENT,
XML_ERROR_PARSING_DECLARATION,
XML_ERROR_PARSING_UNKNOWN,
XML_ERROR_EMPTY_DOCUMENT,
XML_ERROR_MISMATCHED_ELEMENT,
XML_ERROR_PARSING,
XML_CAN_NOT_CONVERT_TEXT,
XML_NO_TEXT_NODE,
XML_ERROR_COUNT
};

你可能感兴趣的:(XML)