feat add pugixml
This commit is contained in:
48
tests/pugixml_test.cc
Normal file
48
tests/pugixml_test.cc
Normal file
@@ -0,0 +1,48 @@
|
||||
#include <sled/sled.h>
|
||||
|
||||
static constexpr char kXmlA[] =
|
||||
R"(<?xml version="1.0"?>
|
||||
<root>
|
||||
<str>hello</str>
|
||||
<node id="1">text1</node>
|
||||
<node id="2">text2</node>
|
||||
<node id="3">text3</node>
|
||||
</root>
|
||||
)";
|
||||
|
||||
static constexpr char kXmlB[] =
|
||||
R"(<?xml version="1.0"?>
|
||||
<root>
|
||||
<level1>
|
||||
<level2>
|
||||
<node id="1">text1</node>
|
||||
<node id="2">text2</node>
|
||||
<node id="3">text3</node>
|
||||
</level2>
|
||||
</level1>
|
||||
</root>)";
|
||||
|
||||
TEST_SUITE("pugixml")
|
||||
{
|
||||
TEST_CASE("xpath query")
|
||||
{
|
||||
pugi::xml_document doc;
|
||||
pugi::xml_parse_result result = doc.load_string(kXmlA);
|
||||
CHECK(result);
|
||||
pugi::xpath_node_set nodes = doc.select_nodes("//node");
|
||||
CHECK_EQ(nodes.size(), 3);
|
||||
CHECK_EQ(nodes[0].node().attribute("id").as_int(), 1);
|
||||
CHECK_EQ(nodes[1].node().attribute("id").as_int(), 2);
|
||||
CHECK_EQ(nodes[2].node().attribute("id").as_int(), 3);
|
||||
}
|
||||
|
||||
TEST_CASE("xpath *")
|
||||
{
|
||||
pugi::xml_document doc;
|
||||
pugi::xml_parse_result result = doc.load_string(kXmlA);
|
||||
CHECK(result);
|
||||
pugi::xpath_node_set nodes = doc.select_nodes("/*/str");
|
||||
CHECK(nodes.size() == 1);
|
||||
CHECK_EQ(std::string("hello"), nodes[0].node().text().as_string());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user