AddContac.html
<head>
<title>연락처 정보</title>
</head>
<body>
<form action="processAdd.asp" method="post">
<h3>연락처 정보를 입력하세요</h3>
이름 : <input type="text" id="firstName" name="firstName"><br>
성 : <input type="text" id="lastName" name="lastName"><br>
주소1 : <input type="text" id="address1" name="address1"><br>
주소2 : <input type="text" id="address2" name="address2"><br>
전화번호 : <input type="text" id="phone" name="phone"><br>
이메일주소 : <input type="text" id="email" name="email"><br>
<input type="submit" id="btnSub" name="btnSub" value="Submit"><br>
</form>
</body>
</html>
processAdd.asp
'-----------------------------------------------------------
'"addNewContacttoXML" 함수는 두개의 파라미터를 받아들인다
'strXMLFilePath : XML 파일이 저장될 물리적 경로
'strFileName : 저장될 XML 파일의 이름
'-----------------------------------------------------------
Function addNewContacttoXML(strXMLFilePath, strFileName)
'지역 변수 선언
Dim objDOM
Dim objRoot
Dim objRecord
Dim objField
Dim objFieldValue
Dim objattID
Dim objattTabOrder
Dim objPI
Dim blnFileExists
Dim x
'XMLDOM 인스턴스 생성
Set objDOM = server.CreateObject("Msxml2.DOMDocument.4.0")
objDOM.preserveWhiteSpace = True
'XMLDOM 개체의 Load 메서드 호출
'Load 메서드는 파일이 로드됐는지 아닌지를 알려주는 불린 값 반환
'만일 파일이 존재하여 도링했으면 true,그렇지 않으면 false 반환
blnFileExists = objDOM.Load(strXMLFilePath & "\" & strFileName)
'파일이 성공적으로 로딩됐는지 체크
if blnFileExists = True Then
'로딩된 파일의 최상위 요소를 objRoot 개체에 셋팅
Set objRoot = objDOM.documentElement
Else
'최상위 요소를 만든 후 XML문서에 추가
Set objRoot = objDOM.createElement("rolodex")
objDOM.appendChild objRoot
End if
'새로운 레코드를 위한 새로운 컨테이너 요소 생성
Set objRecord = objDOM.createElement("contact")
objRoot.appendChild objRecord
'Request 개체에 폼 컬렉션 반복
For x = 1 To Request.Form.Count
'폼요소중 btn이란 이름의 요소가 있으면 XML문서에 추가되지 않도록
If instr(1,Request.Form.Key(x),"btn")=0 Then
'"field" 요소 생성
Set objField = objDOM.createElement("field")
'"id" 속성 생성
Set objattID = objDOM.createAttribute("id")
'현재 폼 필드 이름과 id속성을 같도록 함
objattID.Text = Request.Form.Key(x)
'setAttribute 메서드는 field 요소에 id 속성을 추가시킴
objField.setAttributeNode objattID
'또 다른 속성 "taborder" 생성. 요소들의 순서와 관련
Set objattTabOrder = objDOM.createAttribute("taborder")
'taborder 속성의 값 설정
objattTabOrder.Text = x
'field 요소에 taborder 속성 추가
objField.setAttributeNode objattTabOrder
'새로운 요소 "field_value" 생성
Set objFieldValue = objDOM.createElement("field_value")
'field_value 요소의 값에 현재 폼 컬렉션의 필드의 값 설정
objFieldValue.Text = Request.Form(x)
'field 요소를 새로운 레코드 컨테이너 contact 의 자식으로 추가
objRecord.appendChild objField
'field_value 요소를 field 요소의 자식으로 추가
objField.appendChild objFieldValue
End If
Next
'파일을 로딩하는데 실패했다면 XML 새로운 문서를 만들고
'XML processing instruction을 삽입해야 함
if blnFileExists = False then
'xml processing instruction 생성
Set objPI = objDOM.createProcessingInstruction("xml","version='1.0'")
'XML문서에 processing instruction 추가
objDOM.insertBefore objPI, objDOM.childNodes(0)
End if
'XML문서 저장
objDOM.save strXMLFilePath & "\" & strFileName
'모든 객체 참조 반환
Set objDOM = nothing
Set objRoot = nothing
Set objRecord = nothing
Set objField = nothing
Set objFieldValue = nothing
Set objattID = nothing
Set objattTabOrder = nothing
Set objPI = nothing
End Function
'에러 발생시 계속 진행
On Error Resume Next
'addNewContacttoXML 함수 호출
addNewContacttoXML "XML문서를 만들 곳의 경로","xml파일 이름"
'에러 발생시 사용자에게 알려 주고, 그렇지 않으면 성공했음을 알려줌
If err.number <> 0 then
Response.write("처리 도중 에러 발생!")
Else
%>
<SCRIPT LANGUAGE="JavaScript">
<!--
alert("성공적으로 처리 됐습니다");
location.href="asp파일 경로";
//-->
</SCRIPT>
<%End if%>
[출처] ASP를 이용한 XML문서 만들기|작성자 밤맛만쥬
'프로그래밍 > asp, php' 카테고리의 다른 글
[ASP] Err 객체 (0) | 2010.05.27 |
---|---|
ON ERROR RESUME NEXT (0) | 2009.09.22 |
[ASP] read/write configuration class (xml version) (0) | 2009.08.12 |
[asp] 기본 함수 (0) | 2009.08.01 |
Request.ServerVariables (0) | 2009.07.29 |