0
私はMinixmlを使ってC言語でxmlファイルを解析しています。私は値 "チェックタイム"、 "チェックキー"などをこの小さなから取得したいと思います。ファイル:MiniXML:C言語でxmlを解析する
<?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>
ここに私のコードです。私はタグを使ってデータを抽出する方法を知らない。助けてください。なぜサブノード - >次に次のインスタンス値が表示されないのですか?
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);
}
}
}
コードスニペットの実際の出力を確認するとよいでしょう。 – Clemens