c - 使用 MiniXML 在 C 中解析 XML 文件

标签 c xml parsing mini-xml

我正在使用 MiniXML 库解析 C 中的 XML 文件,但是当我尝试读取节点的值时,它返回 NULL。

代码如下:

FILE *fp;
mxml_node_t *tree;

fp = fopen("test.xml", "r");
tree = mxmlLoadFile(NULL, fp, MXML_TEXT_CALLBACK);
fclose(fp);

mxml_node_t *node;
for(node = mxmlFindElement(tree, tree,"node",NULL, NULL,MXML_DESCEND);
     node != NULL;
     node = mxmlFindElement(node, tree,"node",NULL, NULL, MXML_DESCEND)) {
  printf("Text: %s\n", node->value.text.string);
}

问题是 node->value.text.string 是 NULL。我一直在阅读文档,但我不知道我做错了什么。以前有人遇到过这个问题吗?

最佳答案

尝试更改您的 for 循环以指定:

node->child->value.text.string

代替:

node->value.text.string

那有用吗?这只是一个猜测,但我认为可能有必要获取“节点”元素的数据。

如果这不起作用,请查看 C++: Trouble loading long string from XML file using Mini-XML .此人说他们需要使用 MXML_DESCEND_FIRST 而不是 MXML_DESCEND 来解决他们的问题。我不确定这对你的情况是否有帮助。

如果这些都不起作用,您也可以发布您的输入 XML,以便我们可以尝试重现您的问题。

关于c - 使用 MiniXML 在 C 中解析 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3531148/

相关文章:

java - 维基百科第一段

parsing - attoparsec 错误解析 double

c - Makefile:没有使用变量创建目标的规则

c - 使用指针简单修改C字符串

c - 将函数指针表的索引与表内容同步

python - 在 Python 中使用 ElementTree 解析具有命名空间的 XML

java - 为什么 `text`打开自定义对话框不显示?

c++ - 使用 TinyCbor C 库编码和解码 uint8_t

java - 在文本字段中输入后如何隐藏 EditText 错误?

c# - DateTime.TryParse 如何知道日期格式?