gpt4 book ai didi

c - 迷你XML : parsing xml in C

转载 作者:行者123 更新时间:2023-11-30 16:01:33 26 4
gpt4 key购买 nike

我正在使用 Minixml 在 C 中解析 xml 文件。我想从这个小例子中获取“check-time”、“check-key”等值。文件:

<?xml version="1.0"?>
<!--Test-->
<myfile>
<command type="start">
<instance>check-time</instance>
<instance>check-key</instance>
<instance>check-position</instance>
<action type="press button">
<blue>1</blue>
</action>
</command>

</myfile>

这是我的代码。我不知道如何使用标签提取数据。请帮忙。为什么 subnode->next 不显示下一个实例值?

   fp = fopen( "trial.xml", "r" );
if(fp == NULL){
perror("file missing");
}

mxml_node_t *tree, *Asset_elem;
tree = mxmlLoadFile(NULL, fp,MXML_TEXT_CALLBACK);

fclose(fp);

Asset_elem = mxmlWalkNext(tree, tree, MXML_DESCEND_FIRST);

if(tree != NULL){
mxml_node_t *node, *subnode, *subsubnode;

for (node = mxmlFindElement(Asset_elem, tree,
"command",
"type", "start",
MXML_DESCEND);
node != NULL;
node = mxmlFindElement(node, Asset_elem,
"command",
"type", "start",
MXML_DESCEND))
{

printf("Inside for loop\n");
printf("node name= %s\n", node->value.element.name);

if(node){
subnode = mxmlFindElement(node, tree, "instance", NULL, NULL, MXML_DESCEND);
if(subnode != NULL){
printf("subnode name= %s\n", subnode->value.element.name);
subsubnode = subnode->child;
printf("subsubnode name= %s\n", subsubnode->value.text.string);
subsubnode = subnode->next;
printf("subsubnode name= %s\n", subsubnode->value.text.string);

}
}
}

最佳答案

现在已经不使用子节点了,可以尝试使用node->child->value.xxx。祝你好运。

关于c - 迷你XML : parsing xml in C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6423585/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com