街中で見かけて「グッときた人」の思い出

C言語初心者なのですが、
C言語で与えられたファイルの一部だけを抽出する方法を教えて頂けませんでしょうか?

たとえば、下のようなxmlファイルがあったとして
------------------------------------------
<person>
<id>20</id>
<name>watanabe</name> <score>68</score>
</person>
<person>
<id>21</id>
<name>sato</name>
</person>
<person>
<id>22</id>
<name>yoshida</name> <score>49</score>
</person>
<person>
<id>23</id>
<name>yamada</name> <score>87</score>
</person>
(以下省略)
----------------------------------
このxmlファイルから、

20 watanabe 90
21 sato
22 yoshida 49
23 yamada 87

のように数字や名前だけを抽出したデータファイルを作りたいのですが、
C言語でこんなことってできるんですか?
(できたら上の例のようにsatoさんのscoreは空欄であるような場合にも
対応できたらいいのですが。)

どなたか教えて頂けませんでしょうか?宜しくお願い致します。

A 回答 (2件)

#include<stdio.h>


int main(){
int c;
int a;

a=0;
while((c=getchar())!=EOF){
if(c=='<') a=1;
if(a==0) printf("%c",c);
if(c=='>') a=0;
}

return(0);
}

結果はこんな感じ

20
watanabe 68


21
sato


22
yoshida 49


23
yamada 87
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2014/07/16 11:22

C言語のプログラムでXMLを読むなら、expatやlibxmlを使うのが普通だと思います。


http://expat.sourceforge.net/
http://xmlsoft.org/

"サンプル"や"使い方"をつけて検索すると使用例や解説ページが見つかると思います。


C言語でできますが、自分だったら特別な理由がない限りC言語でプログラムを書かないでしょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報