字符集Unicode环境下 pugixml 读取某个节点下属性文本
时间: 2023-11-27 11:51:11 浏览: 186
TinyXML说明
在pugixml中,可以使用`attribute()`函数来读取节点的属性文本。以下是一个示例代码:
```c++
#include "pugixml.hpp"
#include <iostream>
int main()
{
pugi::xml_document doc;
pugi::xml_parse_result result = doc.load_file("example.xml");
if (!result)
{
std::cout << "Error: " << result.description() << std::endl;
return -1;
}
pugi::xml_node node = doc.child("root").child("person");
// 读取"age"属性的文本
std::string age = node.attribute("age").value();
std::cout << "Age: " << age << std::endl;
return 0;
}
```
在上面的代码中,我们首先用`load_file()`函数加载了一个xml文件。然后,我们通过`child()`函数获取了一个名为"person"的节点,并使用`attribute()`函数读取了它的"age"属性文本。最后,我们将读取到的属性文本输出到控制台上。
需要注意的是,如果属性不存在,`attribute()`函数会返回一个空的`pugi::xml_attribute`对象。要判断属性是否存在,可以使用`empty()`函数。例如:
```c++
pugi::xml_attribute attr = node.attribute("nonexistent_attribute");
if (!attr.empty())
{
std::cout << "Attribute exists!" << std::endl;
}
else
{
std::cout << "Attribute does not exist." << std::endl;
}
```
阅读全文