'xml'에 해당되는 글 2건

  1. 2009.08.12 [ASP] read/write configuration class (xml version)
  2. 2009.08.12 [ASP] asp로 xml 파일 저장

[ASP] read/write configuration class (xml version)

|
<%
'Option Explicit

Class configs

Private mClassName
Private mConfigRootPath
Private mItems
Private mXmlRootNodeName
Private mConfigName

Private Sub Class_Initialize()
 mClassName = "configs class"
 mXmlRootNodeName = "configs"
 mConfigRootPath = server.mappath("./")
End Sub

Public Sub Load(configname)
 Dim xdom
 Dim i
 
 mConfigName = configname
 Set mItems = Server.CreateObject("scripting.dictionary")
 Set xdom = server.CreateObject("microsoft.xmldom")
 xdom.load mconfigrootpath & "\" & configname & ".xml"
 If xdom.parseerror.errorcode <> 0 Then
  Err.raise vbObjectError, mClassName, xdom.parseerror.reason
 Else
  if xdom.documentelement.nodename = mXmlRootNodeName Then
  For i=0 To xdom.documentelement.childnodes.length-1
  mItems.add xdom.documentelement.childnodes(i).nodename, xdom.documentelement.childnodes(i).text
  Next
  Else
  Err.raise vbObjectError, mClassName, "Invalid Configuration File"
  End If
 End If
 Set xdom = nothing
End Sub

Public Sub Save()
 Dim xdom
 Dim i

 Set xdom = server.CreateObject("microsoft.xmldom")
 xdom.load mconfigrootpath & "\" & mConfigName & ".xml"
 If xdom.parseerror.errorcode <> 0 Then
  Err.raise vbObjectError, mClassName, xdom.parseerror.reason
 Else
  if xdom.documentelement.nodename = mXmlRootNodeName Then
  For i= xdom.documentelement.childnodes.length-1 To 0 Step -1
  xdom.documentelement.removechild(xdom.documentelement.childnodes(i))
  Next
  Dim keys, items, newelement
  keys = mItems.keys()
  items = mItems.items()
  For i=0 To mItems.count-1
  Set newelement = xdom.createElement(keys(i))
  newelement.text = items(i)
  xdom.documentelement.appendchild newelement
  Set newelement = Nothing
  Next
  xdom.save mconfigrootpath & "\" & mConfigName & ".xml"
  Else
  Err.raise vbObjectError, mClassName, "Invalid Configuration File"
  End If
 End If
 Set xdom = nothing
 Set mItems = Nothing
End Sub

Public Sub Add(key, value)
 mItems.Add key, value
End Sub

Public Function Item(key)
 Item = mItems.Item(key)
End Function

End Class

'example.asp
'
'Dim a
'Set a = new configs
'a.load "example"
'response.write a.item("test1")
'a.add "test4", "33>3"
'a.save
'Set a = nothing

'example.xml
'
'<configs><test1>1111</test1><test2>2222</test2><test3>3333</test3></configs>
%>


출처 : http://hanhead.tistory.com/trackback/68

'프로그래밍 > asp, php' 카테고리의 다른 글

[ASP] Err 객체  (0) 2010.05.27
ON ERROR RESUME NEXT  (0) 2009.09.22
[ASP] asp로 xml 파일 저장  (0) 2009.08.12
[asp] 기본 함수  (0) 2009.08.01
Request.ServerVariables  (0) 2009.07.29
And

[ASP] asp로 xml 파일 저장

|
html 문서 폼에서 정보를 입력받아 asp를 이용해 xml 문서로 만드는 예제

AddContac.html

<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
And
prev | 1 | next