xml <script 언어=vbscript runat=server>와 결합해야 하는 코드를 용이하게 하기 위한 xmldom 작업 코드
'================================================ = ===========
작가: 너 자신이 되어라
'시간: 2005-3-15
================================================= ==========
클래스 XMLClass
비공개 objXml
비공개 xmlDoc
비공개 xmlPath
'//============================================== = =============
'<!--클래스 초기화 및 로그아웃 중 이벤트-->
하위 클래스_초기화
objXml = Server.CreateObject(MSXML2.DOMDocument) 설정
objXml.preserveWhiteSpace = true
objXml.async = 거짓
서브 끝
하위 클래스_종료
objXml = 없음으로 설정
서브 끝
'//============================================== = =============
'<!--새 XML 문서 만들기-->
공개 함수 CreateNew(sName)
tmpNode = objXml.createElement(sName) 설정
objXml.appendChild(tmpNode)
CreateNew = tmpNode 설정
기능 종료
'<!--외부에서 XML 문서 읽기 -->
공용 함수 OpenXml(sPath)
OpenXml=거짓
sPath=Server.MapPath(sPath)
'응답.쓰기(sPath)
xmlPath = sPath
만약 objXml.load(sPath)라면
xmlDoc = objXml.documentElement 설정
OpenXml=참
종료 조건
기능 종료
'<!--외부에서 XML 문자열 읽기 -->
공용 하위 LoadXml(sStr)
objXml.loadXML(sStr)
xmlDoc = objXml.documentElement 설정
서브 끝
공개 하위 InceptXml(xObj)
objXml = xObj로 설정
xmlDoc = xObj.documentElement 설정
서브 끝
'//============================================== = =============
'<!--새 노드 추가-->
공용 함수 AddNode(sNode,rNode)
' sNode STRING 노드 이름
'rNode OBJECT는 노드의 상위 노드 참조를 추가합니다.
'================================================ = ============
DimTmpNode
TmpNode = objXml.createElement(sNode) 설정
rNode.appendChild TmpNode
AddNode = TmpNode 설정
기능 종료
'<!--새 속성 추가-->
공용 함수 AddAttribute(sName,sValue,oNode)
' sName STRING 속성 이름
' sValue STRING 속성 값
' 속성이 추가된 oNode OBJECT 객체
'================================================ = ============
oNode.setAttributesName,sValue
기능 종료
'<!--노드 내용 추가-->
공용 함수 AddText(FStr,cdBool,oNode)
희미한 tmpText
cdBool이면
tmpText = objXml.createCDataSection(FStr) 설정
또 다른
tmpText = objXml.createTextNode(FStr) 설정
종료 조건
oNode.appendChild tmpText
기능 종료
'================================================ = ================================================ = =====
'<!--노드의 지정된 속성 값을 가져옵니다-->
공용 함수 GetAtt(aName,oNode)
' aName STRING 속성 이름
' oNode OBJECT 노드 참조
'================================================ = ============
희미한 tmp값
tmpValue = oNode.getAttribute(aName)
GetAtt = tmp값
기능 종료
'<!--노드 이름 가져오기-->
공용 함수 GetNodeName(oNode)
' oNode OBJECT 노드 참조
GetNodeName = oNode.nodeName
기능 종료
'<!--노드 내용 가져오기-->
공용 함수 GetNodeText(oNode)
' oNode OBJECT 노드 참조
GetNodeText = oNode.childNodes(0).nodeValue
기능 종료
'<!--노드 유형 가져오기-->
공용 함수 GetNodeType(oNode)
' oNode OBJECT 노드 참조
GetNodeType = oNode.nodeValue
기능 종료
'<!--노드 이름이 같은 모든 노드 찾기-->
공용 함수 FindNodes(sNode)
희미한 tmpNodes
tmpNodes = objXml.getElementsByTagName(sNode) 설정
FindNodes = tmpNodes 설정
기능 종료
'<!--동일한 노드 확인-->
공용 함수 FindNode(sNode)
DimTmpNode
TmpNode=objXml.selectSingleNode(sNode) 설정
FindNode = TmpNode 설정
기능 종료
'<!--노드 삭제-->
공용 함수 DelNode(sNode)
희미한 TmpNodes,Nodesss
TmpNodes=objXml.selectSingleNode(sNode) 설정
Nodesss=TmpNodes.parentNode 설정
Nodesss.removeChild(TmpNodes)
기능 종료
'<!--노드 교체-->
공용 함수 바꾸기Node(sNode,sText,cdBool)
'교체자식
희미한 TmpNodes,tmpText
TmpNodes=objXml.selectSingleNode(sNode) 설정
'AddText sText,cdBool,TmpNodes
cdBool이면
tmpText = objXml.createCDataSection(sText) 설정
또 다른
tmpText = objXml.createTextNode(sText) 설정
종료 조건
TmpNodes.replaceChild tmpText,TmpNodes.firstChild
기능 종료
개인 함수 처리 명령
'//--XML 선언 생성
희미한 objPi
objPi 설정 = objXML.createProcessingInstruction(xml, version=&chr(34)&1.0&chr(34)& 인코딩=&chr(34)&gb2312&chr(34))
'//--xml 문서에 xml 수명 추가
objXML.insertobjPi 이전, objXML.childNodes(0)
기능 종료
'//============================================== = ==============================
'<!--XML 문서 저장-->
공용 함수 SaveXML()
'처리명령()
objXml.save(xmlPath)
기능 종료
'<!--XML 문서 저장-->
공용 함수 SaveAsXML(sPath)
처리명령()
objXml.save(sPath)
기능 종료
'//============================================== = ===================================
'관련 통계
'<!--루트 노드 가져오기-->
속성 루트 가져오기
루트 설정 = xmlDoc
끝 속성
'<!--루트 노드 아래의 하위 노드 수를 가져옵니다-->
속성 가져오기 길이
길이 = xmlDoc.childNodes.length
끝 속성
'//============================================== = ===================================
'관련 테스트
속성 GetTestNode
TestNode = xmlDoc.childNodes(0).text
끝 속성
수업 종료
</script>