提交 3bddc86b 编写于 作者: 小代码2016's avatar 小代码2016

查找节点

上级 a08cb7c7
......@@ -44,6 +44,7 @@
"xstddef": "cpp",
"xstring": "cpp",
"xtr1common": "cpp",
"xutility": "cpp"
"xutility": "cpp",
"format": "cpp"
}
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<personList>
<person id="1001"></person>
<person id="1001" name="khl001" age="34" manager="true">
<intro>这是一段介绍. 这是一段介绍.</intro>
</person>
<person id="1002" name="khl002" age="56" manager="false">
<intro>这是一段介绍. 这是一段介绍.</intro>
</person>
<person id="1003" name="khl003" age="48">
<intro>这是一段介绍. 这是一段介绍.</intro>
</person>
</personList>
\ No newline at end of file
#include <cstdio>
#include <cstring>
#include "doctest/doctest.h"
#include "tinyxml2.h"
#include "spdlog/spdlog.h"
#include "khl_xml_config/khl_xml_config.hpp"
TEST_CASE("tinyxml2_find_node")
{
std::string simpleXmlPath;
tinyxml2::XMLDocument doc;
tinyxml2::XMLError xmlError;
/**
* 查找节点
*/
SUBCASE("find_node")
{
simpleXmlPath = getXmlPath("/data/simple.xml");
xmlError = doc.LoadFile(simpleXmlPath.c_str());
CHECK(tinyxml2::XMLError::XML_SUCCESS == xmlError);
const char* id = "1002";
auto rootEl = doc.RootElement();
auto personNode = rootEl->FirstChildElement("person");
while( nullptr != personNode )
{
if( strcmp(id,personNode->Attribute("id")))
{
break;
}
personNode = personNode->NextSiblingElement();
}
bool find = nullptr != personNode;
CHECK(find);
}
}
\ No newline at end of file
#include "doctest/doctest.h"
#include <cstdio>
#include "doctest/doctest.h"
#include "tinyxml2.h"
#include "spdlog/spdlog.h"
#include "khl_xml_config/khl_xml_config.hpp"
TEST_CASE("tinyxml2_load")
......@@ -32,4 +31,41 @@ TEST_CASE("tinyxml2_load")
xmlError = doc.LoadFile(simpleXmlPath.c_str());
CHECK(tinyxml2::XMLError::XML_ERROR_FILE_NOT_FOUND == xmlError);
}
/**
* 使用 FILE * 加载
*/
SUBCASE("load_by_file")
{
simpleXmlPath = getXmlPath("/data/simple.xml");
FILE *file = fopen(simpleXmlPath.c_str(), "rb");
bool openSuccess = NULL != file;
CHECK(openSuccess);
xmlError = doc.LoadFile(simpleXmlPath.c_str());
CHECK(tinyxml2::XMLError::XML_SUCCESS == xmlError);
bool closeSuccess = 0 == fclose(file);
CHECK(closeSuccess);
}
/**
* 从字符串加载
*/
SUBCASE("load_by_charbuffe")
{
static const char *xml = "<element/>";
xmlError = doc.Parse(xml);
CHECK(tinyxml2::XMLError::XML_SUCCESS == xmlError);
}
/**
* 从字符串加载
*/
SUBCASE("load_by_charbuffe")
{
static const char *xml = "";
xmlError = doc.Parse(xml);
CHECK(tinyxml2::XMLError::XML_ERROR_EMPTY_DOCUMENT == xmlError);
}
}
\ No newline at end of file
#include <cstdio>
#include <iostream>
#include <cstring>
#include "doctest/doctest.h"
#include "spdlog/spdlog.h"
#include "khl_xml_config/khl_xml_config.hpp"
TEST_CASE("test_tmp")
{
spdlog::info("test tmp");
char* a = "one";
char* b = "one";
CHECK(0 == strcmp(a,b));
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册