[ASPX-C#] .net 버전 XML 돔 DOM 파서 활용 예제 ~ 닷넷 용-ILE/VB/ASP , ASPX/C#2008. 5. 15. 20:29
http://suite.tistory.com/ fs 2008.04 실전 활용 못했음~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
common.cs source
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 2008 04 fs 그냥 c# 공부
using System;
using System.Collections;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Xml;
using System.Net; //http 관련 라이브러리
using System.IO; //stream 관련 라이브러리
public class FS_XML : System.Web.UI.Page {
string SERVER_URL="http://localhost:6973/aa.xml?base64=N&";
XmlDocument xmldoc= new XmlDocument();
public ArrayList RESULT_SRCH=new ArrayList();
public ArrayList m_URL=new ArrayList();
public string call_url="";
//결과 정보 변수
public string section_name;
public string usrspec;
public string idxname;
public string qryflag;
public string srtflag;
public string totcnt;
public string maxcnt;
public string outcnt;
public string pagenum;
public string elapse;
public void GetXmlData(){
int start_child=0;
foreach ( string value in m_URL ){
call_url+=value;
}
//Response.Write(call_url);
xmldoc.Load(call_url);
// 헤더 정보 담아오기
section_name=xmldoc.DocumentElement.ChildNodes[0].Attributes[0].InnerText;
usrspec=xmldoc.DocumentElement.ChildNodes[0].ChildNodes[start_child++].InnerText;
idxname=xmldoc.DocumentElement.ChildNodes[0].ChildNodes[start_child++].InnerText;
qryflag=xmldoc.DocumentElement.ChildNodes[0].ChildNodes[start_child++].InnerText;
srtflag=xmldoc.DocumentElement.ChildNodes[0].ChildNodes[start_child++].InnerText;
totcnt=xmldoc.DocumentElement.ChildNodes[0].ChildNodes[start_child++].InnerText;
maxcnt=xmldoc.DocumentElement.ChildNodes[0].ChildNodes[start_child++].InnerText;
outcnt=xmldoc.DocumentElement.ChildNodes[0].ChildNodes[start_child++].InnerText;
pagenum=xmldoc.DocumentElement.ChildNodes[0].ChildNodes[start_child++].InnerText;
elapse=xmldoc.DocumentElement.ChildNodes[0].ChildNodes[start_child++].InnerText;
//결과 데이터 담아오기
//for #1
for(int i=0; i < Int32.Parse(outcnt); i++){
XmlNode node=xmldoc.DocumentElement.ChildNodes[0].ChildNodes[ i+start_child ];
Hashtable ht_temp=new Hashtable();
for(int j=0 ; j < node.ChildNodes.Count; j++){
ht_temp.Add(node.ChildNodes[j].Attributes[0].InnerText,node.ChildNodes[j].InnerText);
//Response.Write(node.ChildNodes[j].Attributes[0].InnerText);
//Response.Write(node.ChildNodes[j].InnerText + "<br>");
//System.Environment.Exit(0);
}
// Response.Write( ht_temp["^titl:"]+ "<br>");
RESULT_SRCH.Add(ht_temp);
}//end of for #1
}//end of GetResults()
// 호출 파라미터 할당
public void SetQRY(string p_name,string p_value){
m_URL.Add(p_name + "=" + p_value + "&");
}
protected void Page_Load(object sender, EventArgs e) {
if( ! IsPostBack ){
m_URL.Add(SERVER_URL);
}
}
}// end of FS_XML
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xml_sample.aspx 샘플 페이지
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<%@ Page Language="C#" Src="common.cs" Inherits="FS_XML" %>
<HTML>
<META http-equiv="Content-Type" content="text/html; charset=euc-kr" />
<HEAD>
<TITLE> XML ASPX - C# 파서 샘플 페이지</TITLE>
</HEAD>
<BODY>
<P>
<%
SetQRY("qry","*");
SetQRY("out","10");
// xml 데이터 파싱해서 RESULT_SRCH에 담아온다
GetXmlData();
Response.Write("<h2> ASPX(C#) XML 파서 샘플 페이지 </h2>");
Response.Write("<xmp> <XML 호출 URL> :" + call_url + "</xmp>");
%>
<br>
- 전체건수: <%= totcnt %> <br>
- 요청건수(outmax값): <%= maxcnt %> <br>
- 출력건수: <%= outcnt %> <br>
- 출력페이지번호: <%= pagenum %> <br> <br>
<%
// 결과 출력
foreach ( Hashtable ht_obj in RESULT_SRCH ){
Response.Write( ht_obj["^titl:"]+ "<br>");
}
%>
</BODY>
</HTML>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
이제 JSP버전만 남았군~~~
'용-ILE > VB/ASP , ASPX/C#' 카테고리의 다른 글
[C#] 소수점 모두 구하기? 관련어 : 순환마디 , 무리수 , 무한 소수 , 파이 3.14 , 원주율 (0) | 2008.05.15 |
---|---|
[ASPX - C# ] XmlDocument.load 서버에서 HTTP 프로토콜 위반이 커밋되었습니다.. Section=ResponseHeader Detail=CR 뒤에는 LF가 와야 합니다. (0) | 2008.05.15 |
[ASP] XML 돔 DOM 파서 활용 예제 (0) | 2008.05.15 |