중화사전망 - 자전 검색 - C 언어로 XML 파일을 구문 분석하는 방법
C 언어로 XML 파일을 구문 분석하는 방법
Xml 파일 내용
& lt? Xml 버전 = "1.0" 인코딩 = "utf-8"? & gt
-< Aicomoa _ response & gt
-< 국가 목록>
-< 국가>
& ltid & gt7 & lt/id & gt;;
& ltpid & gt0 & lt/PID & gt;;
& ltcontinental _ id>;; 1< /continental _ id >
& lt 국호 & gt93 & lt/ 국호>
& ltcnttitle & gt;; 아프가니스탄
& lt 는> 아프가니스탄 & lt/entitle >
아 프가 니스 탄 & lthztitle & gt
& ltjptitle & gt 는 < /jptitle >
& ltkotitle & gt& lt/kotitle & gt;;
& ltjp _ pinyin & gt 영구 < /jp _ pinyin >
& lt 병음> 아포한</ 병음>
& ltsid & gt0 & lt/sid & gt;;
& ltjibie & gt1< /jibie >
& lt/country & gt;;
-< 국가>
& ltid & gt8 & lt/id & gt;;
& ltpid & gt0 & lt/PID & gt;;
& ltcontinental _ id>;; 2 & lt/continental _ id>;;
& lt 국호 & gt355 & lt/ 국호>
& ltcnttitle & gt;; 알바니아
& lt> 알바니아 & lt/entitle >
& lthztitle & gt 알바니아
& ltjptitle & gt ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ /jptitle >
& ltkotitle/& gt;;
& ltjp _ pinyin & gt 영구 < /jp _ pinyin >
Lt 병음> 알바니예 & lt/ 병음>
& ltsid & gt0 & lt/sid & gt;;
& ltjibie & gt1< /jibie >
& lt/country & gt;;
& lt/country _ list & gt;;
& lt/aicomoa _ response >
실행 결과
Info [0] = [id: 7 | PID: 0 | continental _ id:1| 국호: 93 | cn 제목: 아프가니스탄 | 제목:
Hztitle: 아프가니스탄 | jptitle: ㅋㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ 1261
Sid:0|jibie: 1|]
Info [1] = [id: 7 | PID: 0 | continental _ id:1| 국호: 93 | cn 제목
Hztitle: 아프가니스탄 | jptitle: ㅋㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ 1261
Sid:0|jibie: 1|]
계속하려면 아무 키나 누르십시오
암호
# include & ltstdio.h & gt
# include & ltstring.h & gt
주 ()
{
Int I = 0;;
FILE * FP
Char SZ file buff [1024] = {0}, szbuff [100] [1024];
Char id [10] = {0}, PID [10] = {0}, continental _ id [/kll
Cnttitle [64] = {0}, entitle [64] = {0}, hztitle [64] = {0}, jptitle [64] = {
Kotitle [64] = {0}, jp _ pinyin [64] = {0}, pinyin [64] = {0}, sid [/kloc-)
Char *lFirst, * lEnd
Fp = fopen ("country.txt", "r");
If(FP = = NULL)
{
Printf ("XML 파일 읽기 오류! \ n ");
}
While(fgets(szFileBuff, 1023, FP))
{
If((lFirst = strstr(szFileBuff, "& ltid & gt"))! = NULL)
{
LEnd = str str(lFirst+ 1, "& lt/id & gt;;") );
Memcpy(id, lFirst+4, lend-l first-4);
}
If((lFirst = strstr(szFileBuff, "& ltpid"))! = NULL)
{
LEnd = str str(lFirst+ 1, "& lt/PID & gt;;") );
Memcpy(PID, lFirst+5, lend-l first-5);
}
If((lFirst = strstr(szFileBuff, "& ltcontinental _ id>;;") ))! = NULL)
{
LEnd = str str(lFirst+ 1, "& lt/continental _ id>;;") );
Memcpy(continental _ id, lFirst+14, lend-l first-14);
}
If((lFirst = strstr(szFileBuff, "< 국호"))! = NULL)
{
LEnd = str str(lFirst+ 1, "</ 국호");
Memcpy (국호, lFirst+8, lend-l first-8);
}
If((lFirst = strstr(szFileBuff, "& ltcntitle"))! = NULL)
{
LEnd = str str(lFirst+ 1, "& lt/cnttitle & gt;;") );
Memcpy(cntitle, lFirst+9, lend-l first-9);
}
If((lFirst = strstr(szFileBuff, "< 제목"))! = NULL)
{
LEnd = str str(lFirst+ 1, "& lt/entitle & gt;;") );
Memcpy(entitle, lFirst+9, lend-l first-9);
}
If((lFirst = strstr(szFileBuff, "& lthztitle"))! = NULL)
{
LEnd = str str(lFirst+ 1, "& lt/Hz title & gt;;") );
Memcpy (Hz 제목, lFirst+9, lend-l first-9);
}
If((lFirst = strstr(szFileBuff, "& ltjptitle"))! = NULL)
{
LEnd = str str(lFirst+ 1, "& lt/jptitle>);
Memcpy(jp title, lFirst+9, lend-l first-9);
}
If((lFirst = strstr(szFileBuff, "& ltkotitle"))! = NULL)
{
LEnd = str str(lFirst+ 1, "& lt/kotitle>);
Memcpy (코제목, lFirst+9, lend-l first-9);
}
If((lFirst = strstr(szFileBuff, "& ltjp _ 병음"))! = NULL)
{
LEnd = str str(lFirst+ 1, "& lt/jp_pinyin>);
Memcpy(jp _ pinyin, lFirst+1 1, lend-l first-1/kloc/
}
If((lFirst = strstr(szFileBuff, "< 병음"))! = NULL)
{
LEnd = str str(lFirst+ 1, "</ 병음");
Memcpy (병음, lFirst+8, lend-l first-8);
}
If((lFirst = strstr(szFileBuff, "< sid" gt; ") ))! = NULL)
{
LEnd = str str(lFirst+ 1, "& lt/sid & gt;; );
Memcpy(sid, lFirst+5, lend-l first-5);
}
If((lFirst = strstr(szFileBuff, "& ltjibie"))! = NULL)
{
LEnd = str str(lFirst+ 1, "& lt/jibie & gt;;") );
Memcpy(jibie, lFirst+7, lend-l first-7);
}
If((lFirst = strstr(szFileBuff, "& lt/country"))! = NULL)
{
스프린트 (szbuff [I], "id:% s | PID:% s | continental _ id:% s | 국호:% s | cnttitle"
Id, PID, continent _ id, 국호, cntitle, entitle, hztitle, jptitle, kotitle, jp_pinyin, 병음
Printf ("info [%d] = [%s] \ n", i++, szbuff);
}
}
Fclose (FP);
}
보충: 당신은 너무 일반적입니다.
1 업로드하는 XML 파일의 구체적인 형식은 무엇입니까?
웹 페이지에 표시되는 구체적인 형식은 무엇입니까?
너는 어떻게 해야 할지 전혀 모르기 때문에, 너는 어떻게 물어야 할지 모른다.
C 언어의 CGI 에 신경 쓸 필요가 없습니다. 그렇죠? 나는 그것이 무엇으로 업로드되었는지는 개의치 않는다.
당신이 언급한 단어 embedded 만 유용한 정보를 주었습니다. 즉, 플러그인으로 이 XML 을 구문 분석할 수 없을 것 같습니다.
C 언어밖에 없어요
이제 XML 파일 형식과 XML 에서 구문 분석된 정보가 웹 페이지에 표시되어야 하는지 물어 보겠습니다.
이 점을 알기만 하면 생성된 html 파일을 내 프로그램에 추가하기만 하면 됩니다.