pugixml读取某节点属性double p[3],没有属性时写入默认值
时间: 2023-07-15 22:14:44 浏览: 50
可以使用pugixml的`attribute()`函数读取节点属性,如果节点没有该属性,可以使用默认值替代。示例代码如下:
```c++
#include "pugixml.hpp"
#include <iostream>
int main()
{
pugi::xml_document doc;
if (!doc.load_file("example.xml"))
{
std::cerr << "Failed to load file." << std::endl;
return 1;
}
pugi::xml_node node = doc.child("root").child("my_node");
double p[3] = {0.0, 0.0, 0.0};
// 读取节点属性
p[0] = node.attribute("p1").as_double(p[0]);
p[1] = node.attribute("p2").as_double(p[1]);
p[2] = node.attribute("p3").as_double(p[2]);
std::cout << "p1: " << p[0] << std::endl;
std::cout << "p2: " << p[1] << std::endl;
std::cout << "p3: " << p[2] << std::endl;
return 0;
}
```
上述代码中,使用`pugi::xml_node`对象的`attribute()`函数读取节点属性,并使用`as_double()`函数将属性值转换为`double`类型。如果节点没有该属性,则使用默认值替代。在上述示例代码中,初始时将所有属性的默认值设置为`0.0`。