database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
ㆍCache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Cache Q&A 361 게시물 읽기
No. 361
XPATH 사용하여 XML DOM 다루기
작성자
작성일
2009-03-02 17:48
조회수
5,777

CacheDB를 이용하여 XML 문서를 저장하고 그 문서의 내용을 File이나 Stream으로 읽어들여 DOM구조로 검색하는 예제를 만들어 보자.


가령 다음과 같은 xml 문서가 있다고 하자.

<xml> 
<table border="0" bgcolor="white" cellspacing="0" cellpadding="0" width="98%" align="center">

  <tr height="40">
   <td colspan="7" bgcolor="white" align="right">
      <a href="roster_active.jsp?c_id=ana">Active Roster</a>
     |
      <span class="grey">40-Man Roster</span>
     |
      <a href="roster_nri.jsp?c_id=ana">Non-Roster Invitees</a>
     |
    <a href="/team/depth_chart/index.jsp?c_id=ana">Depth Chart</a>
   </td>
   <td bgcolor="white"></td>
</tr>
</table>
</xml>

그러면, 아래와 같은 명령어로 해당 내용을 DOM 모델로 옮겨 내용을 볼 수가 있다.

Set tSC=##class(%XML.XPATH.Document).CreateFromFile("C:\temp\cut.xml",.tDoc)
Set tSC=tDoc.EvaluateExpression("/*","tr",.tRes)
Do ##class(%XML.XPATH.Document).ExampleDisplayResults(tRes)

위에서 가장 중요한 부분이 두번째 줄에 EvaluateExpression 부분인데, 여기서 첫번째 파라미터는 가장 상위 태그 아래에서 부터 찾겠다는 뜻이고, 두번째 "tr"은 "tr"태그를 만나면 그 내용들을 각각 ListOfObject에 넣어서 하나의 tRes에 담겠다는 것이다. 

이때, 한가지 주의할 것은, 최상위 태그는무시되므로, 최상위 태그부터 의미있는 태그를 사용하지 않도록 유의해야 한다.
가령, 최상위 태그를 <xml>태그부터가 아니라 <table> 태그부터 썼다면, "table"로는 찾아도 아무것도 안나오고 <tr>태그부터 찾아야 내용이 나온다는 것이다.

[Top]
No.
제목
작성자
작성일
조회
365cache 라이센스확인중에.. [2]
아이키마니아
2009-03-06
5257
364예술 수준의 Zen Report 페이지
리포트짱
2009-03-05
4790
362Zen Reports 배우기
리포트짱
2009-03-05
4701
361XPATH 사용하여 XML DOM 다루기
2009-03-02
5777
360cache 4.x 한글 자료 좀 구할 수 없을까요? [2]
오태훈
2009-02-23
5024
359[Ensemble]HTTP 어댑터 사용하기
앙상블
2009-02-23
4931
358InterSystems 엔터프라이즈 SOA 기능 추가한 Ensemble 통합 플랫폼 발표(바로 적용)
인터시스템즈
2009-02-18
4510
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.047초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다