0

私のC xmlretrib関数(thisurl、thisxpath)は、cURLを使用して特定のURLからXMLを取得し、取得したchunk.memoryをlibxml2パーサーに送信して、xpathを使用してすべてのノードを探索し、thisxpath式と一致させます(基本的に、いくつかのノード属性からテキストを返します)。難しかったです (私は初心者のプログラマーです) が、数日間の作業、このフォーラムでの検索、およびスタックのコミュニティの助けにより、コードが機能するようになりました。素晴らしい..しかし..しかし、今、私は最後の問題に直面しています(そして、私はそれがはるかに簡単になると心から思っていました)。

xmlretrive にデータがありますが、その情報をメイン関数に戻すにはどうすればよいですか? 文字列の配列に結果を入力し、メインからその配列にアクセスする (そして最後にメモリを解放する) ことは良い動作ですか? どうすればそれを達成できますか?または、他の「標準/安全な」手順はありますか? 配列を「返す」ことはできないと読みました。いくつかの助けをいただければ幸いです。実際には、結果を画面上 (およびもちろん xmlretrive 関数内) にしか印刷できないためです:\

最高です、ジョバンニ。

int main(void)  {
char thisxpath[200];
char thisurl[200];
strcpy (thisurl,"http://api.openweathermap.org/data/2.5/forecast/daily?q=Pescara&mode=xml&units=metric&cnt=3");
strcpy (thisxpath,"//time/@day | //symbol/@name | //windSpeed/@name | //temperature/@*[name()='day' or name()='min']");
xmlretrive (thisurl, thisxpath);
return 0;
}

void xmlretrive(char* myurl, char* myxpath) {
//code, code, a lot of code
for (i=0; i < nodeset->nodeNr; i++) {
    keyword = xmlNodeListGetString(doc, nodeset->nodeTab[i]->xmlChildrenNode, 1);

    printf("keyword: %s\n", keyword);

    // Need to get keyword values back to main//        



xmlFree(keyword);}
//code
}
4

2 に答える 2