한번은 데이터베이스를 사용하지 않고 테스트를 했는데, 웹사이트의 회원정보, 상품데이터정보, 거래정보, 웹사이트 커스터마이징 정보를 3개의 xml 파일에 저장해두었는데, 실행결과는 데이터베이스보다 훨씬 빠르게 느껴지긴 했지만 그렇지는 않았습니다. 테스트해 보세요. 데이터 볼륨이 작은 경우 xml 파일은 검색 및 업데이트 측면에서 ACCESS에 비해 많은 이점을 갖습니다.
한번은 데이터베이스를 사용하지 않고 테스트를 했는데, 웹사이트의 회원정보, 상품데이터정보, 거래정보, 웹사이트 커스터마이징 정보를 3개의 xml 파일에 저장해두었는데, 실행결과는 데이터베이스보다 훨씬 빠르게 느껴지긴 했지만 그렇지는 않았습니다. 테스트해 보세요.
xml 작업을 생성하고, 쿼리하고, 수정하는 주요 방법에 대해 이야기해 보겠습니다.
프로그램 코드
NO.1--XML 데이터베이스 data.xml 생성
다음과 같이 코드 코드를 복사합니다.
<?xml 버전=1.0?>
<기록>
<기록>
<name>카카</name>
<qq>154222225</qq>
<email>[email protected]</email>
</record>
<기록>
NO.2--객체 생성CreateObject
먼저 data.xml의 객체를 생성합니다.
xmldoc=server.createobjcet(microsoft.xmldom) 설정
xmldoc.load(server.mappath(data.xml)
NO.3--선택된 nodeSelectNode
어떤 Node를 운영하시겠습니까? 먼저 이 data.xml에 몇 개의 Node가 있는지 살펴보세요.
재귀 함수로 수행하십시오.
다음과 같이 코드 코드를 복사합니다.
getnodes(xmldoc)
하위 getnode(노드)
나 어두워
response.write(<br><b>노드 이름:</b>&node.nodename&<br><b>NodeTypeString:</b>&node.nodetypestring&<br><b>NodeVal ue:</b>&node.nodevalue&<br><b>텍스트:</b>&node.text&<br><b>node.childnodes.length:</b>&node.childnodes.length&<p>)
node.childnodes.length<>0이면
i=0에서 node.childnodes.length-1까지
getnodes(node.childnodes(i))
다음
종료하면
서브 끝
이 함수를 사용한 후에는 이 data.xml에 10개의 노드가 있음을 알 수 있습니다.
이러한 노드는 쉽게 찾을 수 있습니다.
xmldoc
xmldoc.childnodes(0)
xmldoc.childnodes(1)
xmldoc.childnodes(1).childnodes(0)
xmldoc.childnodes(1).childnodes(0).childnodes(0)
xmldoc.childnodes(1).childnodes(0).childnodes(0).text
xmldoc.childnodes(1).childnodes(0).childnodes(1)
xmldoc.childnodes(1).childnodes(0).childnodes(1).text
xmldoc.childnodes(1).childnodes(0).childnodes(2)
xmldoc.childnodes(1).childnodes(0).childnodes(2).text
위치 지정이 매우 간단합니까? <이름> 위치 지정과 같은 다른 방법이 있습니까?
xmldoc.selectsinglenode(//이름)
NO.4--노드에 값 할당(노드 값 수정)
노드를 찾고 해당 속성을 사용하는 방법을 배운 후에는 값을 수정하거나 할당할 수 있습니다.
예를 들어 <name> 값을 caca에서 wawa로 변경합니다.
xmldoc.selectsinglenode(//이름).text=wawa
xmldoc.save(server.mappath(data.xml))
완료!
NO.5--새 노드 만들기CreatenewNode
createelement 또는 createnode(,,)를 사용하세요.
예: 레코드 아래에 새 <age>를 생성하면 한 문장만 사용됩니다.
xmldoc.selectsinglenode(//record).appendchild(xmldoc.createelement(<age>))
<age>에 값 할당
xmldoc.selectsinglenode(//age).text=20
xmldoc.save(server.mappath(data.xml))
완료!
NO.6--노드 삭제DeleteNode
삭제하려는 노드의 상위 노드와 이 노드의 특성을 지정해야 합니다.
예: <qq> 노드 삭제
xmldoc.selectsinglenode(//record).removechild(xmldoc.selectsinglenode(//qq))
예: <name>=caca를 사용하여 <record> 삭제
xmldoc.selectsinglenode(//records).removechild(xmldoc.selectsinglenode(//record[name='caca']))
xmldoc.save(server.mappath(data.xml))
완료!
이 6가지 코드에 능숙하고 ASP를 사용하여 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에서 많은 기능을 구현할 수 있습니다.
------------------------------------- ---------------------------
ASP는 단순히 XML 파일만 조작할 수 있지만 일반 프로그램 개발자에게는 충분합니다.
이전에는 XML 언어에 대한 노출이 거의 없었습니다. 나중에 XML이 데이터 저장에 많은 편리함을 가지고 있다는 것을 점차 알게 되었습니다. 보안이 좋지는 않지만(제 생각에는) 일반 데이터 저장에는 정말 좋은 선택입니다.
오늘은 웹사이트에서 XML을 사용해야 하기 때문에 여기에 몇 가지 요약을 하겠습니다(나중에 사용됨).
==============
먼저 ASP를 구성하여 XML 파일을 읽습니다.
default.asp 코드
<%
희미한 노드, i, 노드 개수
Doc = CreateObject(Microsoft.XMLDOM) 설정
Doc.async = 거짓
Doc.load(Server.MapPath(data.xml))
루트 설정 = Doc.documentElement
nodeLis = root.childNodes 설정
nodeCount = nodeLis.length
i=1에서 nodeCount까지
노드 설정 = nodeLis.nextNode()
비용 설정 = node.attributes.getNamedItem(비용)
%>
레코드 <%=i%>:
<테이블 너비=50% 테두리=1>
<tr>
<td width=43 rowspan=2><img src=<%=node.selectSingleNode(img).text%>/></td>
<td width=46>책 제목</td>
<td width=48>출판사</td>
<td width=42>가격</td>
</tr>
<tr>
<TD>
<%=node.selectSingleNode(이름).text%>
</td>
<TD>
<%=node.selectSingleNode(게시자).text%>
</td>
<TD>
<%= 비용.텍스트%>
</td>
</tr>
</table>
<%
다음
%>
=====================
다음은 Data.xml의 데이터 내용입니다.
<?xml 버전=1.0 인코딩=UTF-8?>
<데이터>
<도서 가격=56>
<name>드림위버</name>
<출판사>중국철도출판사</publisher>
<img>img/dw.jpg</img>
</book>
<도서 가격=62>
<name>플래시</name>
<출판사>중국철도출판사</publisher>
<img>img/flash.jpg</img>
</book>
<도서 가격=48>
<name>Firworks</name>
<출판사>중국철도출판사</publisher>
<img>img/fw.jpg</img>
</book>
</data>