ASP XML 연산 수업, XML 연산을 배우고 싶은 친구들이 참고하면 됩니다. 코드를 복사하면 다음과 같습니다. 클래스 XMLClass
비공개 objXml
비공개 xmlDoc
비공개 xmlPath
'//============================================== = =============
'
하위 클래스_초기화
objXml = Server.CreateObject(MSXML2.DOMDocument) 설정
objXml.preserveWhiteSpace = true
objXml.async = 거짓
서브 끝
하위 클래스_종료
objXml = 없음으로 설정
서브 끝
'//============================================== = =============
'
공개 함수 CreateNew(sName)
tmpNode = objXml.createElement(sName) 설정
objXml.appendChild(tmpNode)
CreateNew = tmpNode 설정
기능 종료
'
공용 함수 OpenXml(sPath)
OpenXml=거짓
sPath=Server.MapPath(sPath)
'응답.쓰기(sPath)
xmlPath = sPath
만약 objXml.load(sPath)라면
xmlDoc = objXml.documentElement 설정
OpenXml=참
종료 조건
기능 종료
'
공용 하위 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)
기능 종료
'//============================================== = ==============================
'
공용 함수 SaveXML()
'처리명령()
objXml.save(xmlPath)
기능 종료
'
공용 함수 SaveAsXML(sPath)
처리명령()
objXml.save(sPath)
기능 종료
'//============================================== = ===================================
'관련 통계
'
속성 루트 가져오기
루트 설정 = xmlDoc
끝 속성
'
속성 가져오기 길이
길이 = xmlDoc.childNodes.length
끝 속성
'//============================================== = ===================================
'관련 테스트
속성 GetTestNode
TestNode = xmlDoc.childNodes(0).text
끝 속성
수업 종료
XMLDom을 통한 서버 측 ASP 운영 XML 파일의 주요 방법 및 구현
데이터 볼륨이 작은 경우 xml 파일은 검색 및 업데이트 측면에서 ACCESS에 비해 많은 이점을 갖습니다.
한번은 데이터베이스를 사용하지 않고 테스트를 했는데, 웹사이트의 회원정보, 상품데이터정보, 거래정보, 웹사이트 커스터마이징 정보를 3개의 xml 파일에 저장해두었는데, 실행결과는 데이터베이스보다 훨씬 빠르게 느껴지긴 했지만 그렇지는 않았습니다. 테스트해 보세요.
xml 작업을 생성하고, 쿼리하고, 수정하는 주요 방법에 대해 이야기해 보겠습니다.
'DOM 객체 생성
objDom=server.CreateObject(MicroSoft.XMLDom)를 설정합니다.
'XML 데이터 가져오기
'방법 1 xml 파일의 xml 데이터 가져오기
objDom.load(c:/test.xml)
'방법 2 xml 데이터 문자열의 데이터 가져오기
objDom.loadxml(<people><man name=sd/></people>)
'노드 객체 생성
Newnode=objDom.CreateElement(사람) 설정
'이 노드에 값을 지정하세요.
Newnode.Text=사람
'이 노드에 속성을 추가합니다.
NewAttribute=objDom.CreateNode(속성, 이름,)를 설정합니다.
NewAttribute.Text= 장산
Newnode.SetAttributeNode NewAttribute
'이 노드에 하위 노드를 추가합니다.
NewnodeChild=objDom.CreateElement(주소) 설정
Newnode.appendChild NewnodeChild
'이 노드 개체를 저장합니다.
objDom.appendChild 새노드
objDom.save(c:/test.xml)
'노드 객체 찾기
objtofind=objdom.documentElement.SelectSingleNode(//people/man) 설정
'노드 이름, 노드 값, 특정 속성 값 및 이 노드 개체의 모든 xml을 가져옵니다.
노드 이름=objtofind.nodename
nodevalue=objtofind.text
objtofind.GetAttributeNode(name).Nodevalue '속성 이름이 있는 속성 값 name
'속성 노드 개체 가져오기
set objattrtofind=objdom.documentElement.SelectSingleNode(//people/man).GetAttributeNode(이름)
'이 노드의 속성 이름과 속성 값을 가져옵니다.
nodeattrname=objattrtofind.nodename
nodeattrvalue=objattrtofind.nodevalue
'노드 개체 삭제
set objnode=objdom.documentElement.SelectSingleNode(//people/man) '삭제할 노드
set objparentnode=objdom.documentElement.SelectSingleNode(//people) '삭제할 노드의 부모 노드
objparentnode.removeChild objnode
'노드의 바이트 포인트 세트를 가져옵니다
objnodes=objdom.documentElement.SelectSingleNode(//people/man).ChildNodes를 설정합니다.
이 컬렉션을 반복합니다.
방법 1
objnodes의 각 요소에 대해
response.write element.nodename 바이트 이름 지정
response.write element.text 바이트 포인트 값
다음
방법 2
domlength=objnodes.length
i = 0에서 domlength-1까지
response.write objnodes.childnodes(i).nodename 바이트 이름 지정
response.write objnodes.childnodes(i).text 바이트 포인트 값
다음
'노드의 속성 세트를 가져옵니다
set objnodes=objdom.documentElement.SelectSingleNode(//people/man).GetAttributeNode(name).attributes
이 컬렉션을 반복합니다.
objnodes의 각 요소에 대해
response.write element.nodename 속성 이름
response.write element.nodevalue 속성 값
다음
xmldom 개체를 능숙하게 사용하여 xml 파일을 조작할 수 있게 되면 다음을 즐길 수 있습니다.
xmlhttp 개체는 ASP에서 많은 기능을 구현하는 데 사용됩니다.
re:[전송]XMLDom을 통해 서버 측에서 ASP 운영 XML 파일의 주요 방법 및 구현
페이페이 씨, @ 사용법을 소개해 드리는 건 어떨까요? 이것이 없으면 불편한 점이 많을 것 같아요.
XML, 일부 사람들은 이를 데이터 압축 기술이라고 부르기도 합니다. 이름에서 알 수 있듯이 XML은 데이터베이스로 사용될 수 있습니다.
그러므로 우리는 xml을 작은 데이터베이스라고 생각할 수 있습니다. 왜 작다고 불리는가? XML 자체의 기능과 응용 편의성으로 인해 데이터베이스에는 여전히 특정 차이점이 있습니다. 그렇다면 우리는 왜 XML을 사용하는가? 때로는 일부 애플리케이션이 데이터 액세스를 수행하지만 데이터베이스를 사용하는 경우 디스플레이가 충분히 유연하고 편리하지 않기 때문입니다. 이때 xml과 조합하여 사용해야 합니다.
xml은 데이터베이스로 간주될 수 있으므로 첫 번째 단계는 물론 링크 개체를 만드는 것입니다. (예를 들어 ASP+xml을 사용)
생성 방법은 링크 데이터베이스와 동일하며, server.createobject를 사용하여 생성합니다.
방법은 다음과 같습니다.
xmlDoc= Server.CreateObject(microsoft.xmldom) 설정
xmlDoc.async=false
xmldata=데이터 소스의 절대 경로
xmlDoc.load xmldata '여기에 링크하려면 로드 방법을 사용하세요.
xml의 데이터 형식은 비교적 사용자에게 친숙하기 때문에, 이 때 계속 사용하면 프로그램의 프로세스가 중단될 수 있습니다. 우리는 종종 링크 객체를 생성한 후에 이를 수행합니다.
방법은 다음과 같습니다.
xmlDoc.parseError.errorCode<>0이면
….오류 처리
<%
'----------
'프로그램 소개 : XML 문서에 지정된 노드의 텍스트를 추가, 삭제, 수정 및 보기 위한 ASP 언어를 완성합니다.
'입력 매개변수: 없음
'내보내기 매개변수: 없음
'---------
'함수명 : ConnectXml()
'입력 매개변수: filename xml 연결하거나 열 파일 이름
'내보내기 매개변수: 없음
'반환값: ConnectXml=0, XMLMorntekDocument는 XML 문서를 성공적으로 로드한 개체입니다.
'ConnectXml<>0, 그런 다음 오류 메시지 strError를 인쇄합니다.
'---------
희미한 XMLMorntekDocument
함수 ConnectXml(파일 이름)
희미한 strSource파일
strSourceFile = Server.MapPath(파일 이름)
XMLMorntekDocument = Server.CreateObject(Microsoft.XMLDOM) 설정
XMLMorntekDocument.async = 거짓
XMLMorntekDocument.load(strSourceFile)
ConnectXml=XMLorntekDocument.parseerror.errorcode
XMLMorntekDocument.parseerror.errorcode<>0이면
strError=<h2>오류&XMLMorntekDocument.parseerror.errorcode&</h2>
strError=strError&XMLMorntekDocument.parseerror.reason&<br>
strError=strError&XMLMorntekDocument.parseerror.url&<br>
strError=strError&XMLMorntekDocument.parseerror.line&<br>
strError=strError&XMLMorntekDocument.parseerror.filepos&<br>
strError=strError&XMLMorntekDocument.parseerror.srcText&<br>
response.write strError
종료하면
종료 기능
'---------
'함수 이름: CloseXml()
'입력 매개변수: 없음
'내보내기 매개변수: 없음
'---------
함수 CloseXml(XMLorntekDocument)
IsObject(XMLMorntekDocument)인 경우
XMLMorntekDocument=아무것도 설정하지 않음
종료하면
종료 기능
'---------
'함수 이름: SelectXmlNodeText(요소 이름)
'항목 매개변수: elementname 요소의 이름
'내보내기 매개변수: 없음
'---------
함수 SelectXmlNodeText(요소 이름)
요소이름=//&요소이름
temp=XMLMorntekDocument.selectSingleNode(요소 이름).text
selectXmlNodeText= server.htmlencode(임시)
종료 기능
'---------
'함수 이름: InsertXmlNodeText(befelementname,elementname,elementtext)
'항목 매개변수: elementname 삽입된 요소의 이름
' befelementname은 이 요소의 이름 앞에 요소를 삽입합니다.
'elementtext 삽입된 요소의 텍스트
'내보내기 매개변수: 없음
'---------
함수 InsertXmlNodeText(bef요소 이름,요소 이름,요소 텍스트)
희미한 요소, 요소
set befelement=XMLMorntekDocument.selectSingleNode(//&befelementname)
요소 설정= XMLMorntekDocument.createelement(요소 이름)
befelement.insert요소 앞에,befelement.firstchild
element.text=요소텍스트
종료 기능
'---------
'함수 이름: UpdateXmlNodeText(elementname,newelementtext)
'항목 매개변수: elementname 요소의 이름
' newelementtext 요소의 새 텍스트
'내보내기 매개변수: 없음
'---------
함수 UpdateXmlNodeText(요소 이름,새 요소 텍스트)
희미한 요소
요소 설정=XMLMorntekDocument.selectSingleNode(//&요소 이름)
element.text=newelementtext
종료 기능
'---------
'함수 이름: DeleteXmlNodeText(요소 이름)
'항목 매개변수: elementname 요소의 이름
'내보내기 매개변수: 없음
'---------
함수 DeleteXmlNodeText(요소 이름)
XMLMorntekDocument.selectSingleNode(//&요소 이름).text =
종료 기능
%>
____________________
이 기사는 테스트되지 않았으며 타당성은 알 수 없습니다.