웹프로그램을 배우려면 게시판을 만들어 보라는 말이 있습니다. XML을 응용한 프로그램을 만들려고 할 때, 다른 언어보다 ASP가 간단하면서도 웹기반 프로그램 제작에 매우 유용합니다. 이 ASP를 이용하여 XML을 다루는 기술을 습득하고자 할 때 게시판을 하나 만들어 보는 것이 좋을 듯 합니다. 여기서는 이에 도움이 되는 가장 기본적인 게시판 소스를 분석하여 설명합니다.
파일은 아래와 같습니다.
content.asp | 선택한 글을 인덱스를 이용 검색하여 보여줌. |
default.asp | 글쓰기. |
delete.asp | 삭제 처리. |
gesipan.xsl | 리스트를 출력하는 포맷을 지정한 xsl 파일. |
gesipandb.xml | 게시판 글 데이터. |
list.asp | xml DB를 검색 정리하여 리스트를 보여줌. |
predel.asp | 지우기 전에 보여주는 화면. |
save.asp | 글쓰기 후 저장 처리. |
update.asp | 수정을 처리하는 파일. |
게시판 파일 받기(암호걸려있음)
소스 중 xml과 관련된 중요 부에 대해 설명을 하겠습니다.
List.asp '// xml 화일에 대한 xml dom 객체를 생성시킨다
'// xsl 화일에 대한 xml dom 객체를 생성시킨다 nodecount = oSource.selectNodes("//guestbook/entry").length
low = start
if m_startpage < 1 then m_startpage = 1 for i = m_startpage to cpage + m_startpage-1 pagenode = pagenode & "<page no='" & m_no & "' start='" & m_start & "'/>" pagenode = pagenode & "</pages>" ' 페이지 끝 태그를 넣는다. ' 임시 Dom을 만든다.
'// xsl을 이용해서 xml의 내용을 html양식으로 변화시킨 후 웹브라두져에 출력한다
|
Content.asp
<% Dim ElemList key=request("index")
For i=0 To (Elemindex.length -1)
Set Elemcount = xmlDoc.getElementsByTagName("count") xmlDoc.Save Server.Mappath("gesipandb.xml") Set Elemname = xmlDoc.getElementsByTagName("name") Set Elemmail = xmlDoc.getElementsByTagName("mail") Set Elemippaddr = xmlDoc.getElementsByTagName("ipaddr") Set Elemtitle = xmlDoc.getElementsBytagName("title") Set Elemcontent = xmlDoc.getElementsByTagName("content") Set Elemcount = xmlDoc.getElementsByTagName("count") Set Elempwd = xmlDoc.getElementsBytagName("pwd")
%> |
Delete.asp
'비밀번호 확인 if trim(spwd) = trim(Elempwd.item(i).text) then '문서의 root 노드를 읽어와서 해당 child node 삭제 response.redirect "list.asp" |
Save.asp
'// 방명록 xml 문서에 'entry' 노드 생성 Set oEntryNode=oDOM.documentElement.AppendChild(oDOM.createElement("entry")) oEntryNode.setAttribute "date", FormatDateTime(date,yyyy-mm-dd) '// 방명록 xml 문서에 'index' 노드 생성 '// 방명록 xml문서에 'name' 노드 생성 '// 방명록 xml문서에 'email' 노드 생성 '// 방명록 xml문서에 'homepage' 노드 생성 '// 방명록 xml문서에 'ref' 노드 생성 '// 방명록 xml문서에 'ref_step' 노드 생성 '// 방명록 xml문서에 'tag' 노드 생성 '// 방명록 xml문서에 'count' 노드 생성 '// 방명록 xml문서에 'subject' 노드 생성 '// 방명록 xml문서에 'message' 노드 생성 -이것은 cdata 섹션으로 둔다. '// 방명록 xml문서에 'pwd' 노드 생성 '// 이제 xml 문서를 저장한다 oDOM.Save Server.MapPath("gesipandb.xml") response.redirect("list.asp") |
[출처] http://cadcam.yonsei.ac.kr/member/iljusado/resource/xml/xml_gesipan.html