pugixml.cpp获取节点的属性值
时间: 2024-03-10 10:44:35 浏览: 134
得到XML节点的属性和文字
3星 · 编辑精心推荐
要获取一个节点的属性值,可以使用pugixml库中的`attribute`函数。这个函数接受一个表示属性名称的字符串参数,并返回一个`xml_attribute`对象,表示节点的该属性。如果属性不存在,则返回一个空的`xml_attribute`对象。您可以通过`value`函数获取该属性的值。
以下是一个示例代码,演示如何获取节点的属性值:
```c++
#include "pugixml.hpp"
#include <iostream>
int main() {
const char* xml = "<person name=\"Alice\" age=\"25\"></person>";
pugi::xml_document doc;
pugi::xml_parse_result result = doc.load_string(xml);
if (!result) {
std::cout << "Error parsing XML: " << result.description() << std::endl;
return 1;
}
pugi::xml_node person_node = doc.child("person");
if (!person_node) {
std::cout << "Error: could not find <person> element" << std::endl;
return 1;
}
// 获取 name 属性的值
pugi::xml_attribute name_attr = person_node.attribute("name");
if (!name_attr) {
std::cout << "Error: could not find 'name' attribute" << std::endl;
return 1;
}
std::cout << "Name: " << name_attr.value() << std::endl;
// 获取 age 属性的值
pugi::xml_attribute age_attr = person_node.attribute("age");
if (!age_attr) {
std::cout << "Error: could not find 'age' attribute" << std::endl;
return 1;
}
std::cout << "Age: " << age_attr.value() << std::endl;
return 0;
}
```
输出:
```
Name: Alice
Age: 25
```
阅读全文