对于具有
的XML<?xml version="1.0" encoding="utf-8"?>
<COLLADA version="1.4.0" xmlns="http://www.collada.org/2005/11/COLLADASchema">
<library_geometries>
<geometry id="Cube">
<mesh>
<source id="Cube">
<float_array count="24" ">1 2 3</float_array>
[..]
我正在使用
正确填充“1 2 3”字符串if (!xmlStrcmp(cur_node->name, (const xmlChar *) "mesh")
printf(": %s\n",xmlNodeGetContent(cur_node->children->next);
但是如何获得'count'的值? ( “计数=” 24 “”)
e.g。
printf(": %s\n", xmlGetProp(cur_node->children->next,(const xmlChar *)"count"));
不对。
答案 0 :(得分:1)
xmlNodeGetContent
的定义是
读取节点的值,这可以 要么直接由文字携带 这个节点,如果它是TEXT节点或 所携带值的聚合字符串 通过这个节点的孩子(TEXT和 ENTITY_REF)。实体引用是 取代
因此发生的事情是cur_node->children->next
实际指向<source>
节点,而不是<float_array...
节点。对xmlNodeGetContent
的调用显示,因为它从包含的节点获取内容。
对xmlGetProp
的调用不返回任何内容,因为您在错误的节点上调用它。
您需要确保在正确的节点上调用xmlGetProp
。