Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- disabled
- euc-kr
- SQL Injection
- utf-8
- replace
- ASP
- DS718+
- ajax
- javascript
- synology
- Injection
- FileSystemObject
- 무선랜카드
- XMLHTTP
- 시놀로지
- println
- jquery 레이어
- RTL88x2BU
- submit
- PHP GCM
- AC1300
- Getrows
- readonly
- 따라다니는 배너
- 커널
- lsusb
- form
- jQuery
- include
- 크로스 컴파일
Archives
- Today
- Total
아는 것이 좋은 것이다.
[ASP] 클래스로 xml 생성 본문
xmlTest.asp
<% Class XmlLib '================================================================== ' 변수 선언 '================================================================== Private XML_HEADER ' xml 헤더 Private m_parent_node ' parent node Private t_parent_node ' 최상위 node Private m_node_names ' child node 이름 Private m_node_values ' child node 값 '================================================================== ' getter/setter '================================================================== '----------------------------------- ' child node 이름 정보 반환 '----------------------------------- Public Property Get getNode() getNode = m_node_names End Property '----------------------------------- ' child node 값 정보 반환 '----------------------------------- Public Property Get getData() getData = m_node_values End Property '----------------------------------- ' parent node 초기화 '----------------------------------- Public Sub setInit(parent_node) m_parent_node = parent_node t_parent_node = CStr(m_parent_node)&"s" End Sub '----------------------------------- ' child node 이름 초기화 '----------------------------------- Public Sub setNode(node_names) m_node_names = node_names End Sub '----------------------------------- ' child node 값 초기화 '----------------------------------- Public Sub setData(node_values) if m_parent_node = "" then ErrMsg "setInit 프로시저를 초기화 하지 않았습니다.", "setData" elseif m_node_names = "" then ErrMsg "setNode 프로시저로 Node를 초기화 하지않았습니다.", "setData" else if m_node_values = "" then m_node_values = node_values else m_node_values = m_node_values&"|"&node_values end if end if End Sub '================================================================== ' class basic function and sub '================================================================== '----------------------------------- ' class 생성시 초기화 '----------------------------------- Private Sub Class_Initialize XML_HEADER = "<?xml version=""1.0"" encoding=""euc-kr"" ?>" End Sub '----------------------------------- ' class 종료시 '----------------------------------- Private Sub Class_Terminate End Sub '----------------------------------- ' error message를 반환하는 함수 '----------------------------------- Private Sub ErrMsg(ErrDesc,fnname) Dim ErrM ErrM = "<p><font color=red><b>[오류]: "&ErrDesc&" <br>" ErrM = ErrM&" "&fnname&"()에서 오류가 발생했습니다.</b></font></p>" Response.Write ErrM Response.End End Sub '================================================================== ' xml 관련 function and sub '================================================================== '----------------------------------- ' xml 데이타로 뿌리기 '----------------------------------- Public Function GetXmlData() Dim tmp_data, tmp_node, tmp_values, tmp_retval tmp_retval = XML_HEADER&vbCrLf tmp_retval = tmp_retval&GetDocType()&vbCrLf tmp_data = Split(m_node_values,"|") ' child node 데이타들을 배열로 저장 tmp_node = Split(m_node_names,",") ' child node 이름을 배열로 저장 For i = 0 to UBound(tmp_data) if i = 0 then tmp_retval = tmp_retval&ConvNode(t_parent_node,"o")&vbCrLf end if tmp_retval = tmp_retval&ConvNode(m_parent_node,"o")&vbCrLf For j = 0 to UBound(tmp_node) tmp_values = Split(tmp_data(i),",") 'tmp_retval = tmp_retval&vbTab&ConvNode(tmp_node(j),"o")&tmp_values(j)&ConvNode(tmp_node(j),"c")&vbCrLf tmp_retval = tmp_retval&vbTab&ConvCDATA(ConvNode(tmp_node(j),"o")&tmp_values(j)&ConvNode(tmp_node(j),"c"))&vbCrLf 'tmp_retval = tmp_retval&vbTab&ConvNode(tmp_node(j),"o")&"<ELEMENT>"&tmp_values(j)&"</ELEMENT>"&ConvNode(tmp_node(j),"c")&vbCrLf Next tmp_retval = tmp_retval&ConvNode(m_parent_node,"c")&vbCrLf Next tmp_retval = tmp_retval&ConvNode(t_parent_node,"c") GetXmlData = tmp_retval End Function Private Function GetDocType() Dim tmp_retval, tmp_node tmp_retval = "<!DOCTYPE notice ["&vbCrLf tmp_node = Split(m_node_names,",") For i = 0 to UBound(tmp_node) tmp_retval = tmp_retval&"<!ELEMENT "&Trim(tmp_node(i))&" (#PCDATA)>"&vbCrLf Next tmp_retval = tmp_retval&"]>" GetDocType = tmp_retval End Function '----------------------------------- ' xml 위한 페이지 헤더 '----------------------------------- Public Sub OutXml Response.Buffer = TRUE Response.ContentType = "text/xml" End Sub '================================================================== ' general function and sub '================================================================== '----------------------------------- ' node를 <> 태그로 감싸주는 함수 '----------------------------------- Private Function ConvNode(v,f) v = Trim(v) if f = "o" then ConvNode = "<"&v&">" elseif f = "c" then ConvNode = "</"&v&">" else ErrMsg "flag는 o, c 로만 지정해야합니다..", "ConvNode" end if End Function '----------------------------------- ' element를 cdata로바꿔줌 '----------------------------------- Private Function ConvCDATA(v) ConvCDATA = "<![CDATA["&v&"]]>" End Function Private Function ConvStr(v) v = Replace(v,"&","&") v = Replace(v,"<","<") v = Replace(v,">",">") 'v = Replace(v,"""","(") ConvStr = v End Function End Class Set x = New XmlLib x.setInit "notice" x.setNode "title, data, content, link" x.setData "제목입니다,2004.02.03,<a href='http://www.empas.com'>내용입니다</a>,링크라네요" x.setData "제목입니다1111,2004.02.03&,<내용입니다111,링크라네요11" x.setData "제목입니다1111,2004.02.03,내용입니다111,링크라네요11" x.OutXml Response.Write x.GetXmlData() %>
'ASP' 카테고리의 다른 글
[ASP] 달력 생성 소스 (공휴일 추가가능) (0) | 2014.04.27 |
---|---|
[ASP] 파일이동, 폴더이동, 파일삭제 (0) | 2014.04.27 |
[ASP] 중복 조회수 처리 (0) | 2014.04.24 |
[ASP] 해당루트에 파일 존재 여부 확인 (0) | 2014.04.24 |
[ASP] fso 특정 문자를 포함한 파일 일괄 삭제 (0) | 2014.04.24 |
Comments