我有一个XML节点,我想表示两个整数值和一个整数数组。我选择这样做:
<MyNode a="4" b="8">
<c_array>
<c_value>"1"</c_value>
<c_value>"2"</c_value>
<c_value>"3"</c_value>
</c_array>
</MyNode >
我想通过将a和b表示为属性而将c表示为节点来表示我是否存在不一致性。但似乎可以将属性读取为整数:
int a = myNode.attribute("a").as_int();
但节点本身只有value()方法,返回char *。这是什么原因?
我的'不一致'是否合理?
我没有读取c的值(我正在使用pugixml):
pugi::xml_node myNode = parentNode.child("MyNode");
pugi::xml_node c_array = parentNode.child("c_array");
for (pugi::xml_node c_value = c_array.child("c_value"); c_value; c_value = c_value.next_sibling("c_value"))
{
printf("c value: %s\n", c_value.value());
}
使用此代码,不会打印任何值。知道为什么吗? c_value的值是否应该在引号中?