엑셀 vba namespace xml 파싱 질문

VBA
작성자
gn****
작성일
2021-08-06 12:03
조회
3841
엑셀버전 : 엑셀2019

운영체제 : 윈도우10

Dim objXml As MSXML2.DOMDocument60

Set objXml = New DOMDocument60

strResult = Replace(strResult, "wfs:", "")
strResult = Replace(strResult, "gml:", "")
strResult = Replace(strResult, "NSDI:", "")

objXml.LoadXML (strResult)

Dim nodeList As IXMLDOMNodeList
Dim nodeRow As IXMLDOMNode
Dim nodeCell As IXMLDOMNode

Set nodeList = objXml.SelectNodes("/FeatureCollection/featureMember/F176")
Set nodeCell = nodeList.SelectSingleNode("PRPOS_AREA_DSTRC_NM_LIST")

공공데이터포털에서 xml 형식에서 데이터를 추출하려고 합니다. 마지막 노드 바로 위 노드의 텍스트값을 추출하는 건데요.

우선은 네임스페이스를 제거하고 시도를 해보았는데 안되었습니다.

또한, 아래와 같이 네임 스페이스 정의를 활용해보기도 했는데 잘 안되더라구요.

objXml.SetProperty "SelectionNamespaces", "xmlns:gml=""http://www.opengis.net/gml"" xmlns:NSDI=""http://10.1.17.66:6080/arcgis/services/opend/EiosSpceServiceWFS/MapServer/WFSServer"""

위와 같이 namespace 가 있는 경우에는 어떻게 파싱해야하는지 여쭤보고 싶습니다. 구글링 해도 잘 되지가 않아서 질문드립니다.

감사합니다.

신고
스크랩
공유
전체 5

  • 2021-08-06 19:28

    @gn**** 님 엑셀에서 기본으로 제공하는 FILTERXML 함수를 사용하셔도 좋을 듯 합니다.

    =FILTERXML("...","//NSDI : ...")

    와 같이 함수를 작성하시면 됩니다. VBA로 작성할 경우, Application.WorkSheetFunction.FILTERXML(...) 로 입력할 수 있습니다.

    자세한 설명은 아래 페이지를 참고해보세요.

    엑셀 FILTERXML 함수 사용법 및 예제 :: 웹 함수


    • 2021-08-09 15:47

      @오빠두엑셀 님 역시  오빠두   감사합니다~~^^* 출장중이라  잘  실행해보고  답글  남기겠습니다


  • 2021-08-06 14:48
    채택된 답변

    @gn**** 님 XML 파싱은 각 노드단으로 나눠서 작업해주시면 되요~!

    예제 코드는 아래에..

    https://stackoverflow.com/questions/11305/how-to-parse-xml-using-vba

    Dim objXML As MSXML2.DOMDocument
     
    Set objXML = New MSXML2.DOMDocument
     
    If Not objXML.loadXML(strXML) Then  'strXML is the string with XML'
        Err.Raise objXML.parseError.ErrorCode, , objXML.parseError.reason
    End If
     
    Dim point As IXMLDOMNode
    Set point = objXML.firstChild
     
    Debug.Print point.selectSingleNode("X").Text
    Debug.Print point.selectSingleNode("Y").Text

    근데 리턴값을 보면 split으로 <NSDI: 개체를 발라준 뒤, 마지막 값만 추출하는게 이후 작업에는 더 편리할 것 같아보입니다.


    • 2021-08-09 15:49

      @더블유에이 님 감사합니다  아직   공부중이라  잘실행해보갰습니다  ~~^^*


      • 2023-02-28 00:48

        @gn**** 님 성공하셨나요?? 저도 이과정에서 더 이상 진도가 안나가네요 ㅠㅠ 혹시 성공하셨다면 저에게도 힌트좀 부탁드립니다.


전체 18,535
번호 카테고리 제목 작성자 작성일 추천 조회
알림
[📚진짜쓰는 실무엑셀] IT/오피스 '1위' 베스트셀러! 엑셀 공부, 이 교재로 마스터하세요! (315)
오빠두엑셀 | 2022.02.03 | 추천 575 | 조회 610207
오빠두엑셀 2022.02.03 575 610207
공지사항 문서서식
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐ (197)
오빠두엑셀 | 2021.10.28 | 추천 310 | 조회 35598
오빠두엑셀 2021.10.28 310 35598
78587 기능/도구
New 클립보드 오류 첨부파일
고녱 | 11:25 | 추천 0 | 조회 14
고녱 11:25 - 14
78586 함수/공식
New (초보 질문) 15분별-데이터를 1시간별-데이터로 SUMIFS 하는데, 일부 오류 발생 구간이 있습니다. 엑셀파일첨부파일 (2)
콩떡 | 09:48 | 추천 0 | 조회 26
콩떡 09:48 - 26
78584 구글시트
New 같은 값에 색으로 표시하기 첨부파일 (1)
피망이 | 09:24 | 추천 0 | 조회 34
피망이 09:24 - 34
78582 함수/공식
New 조건 함수 의 관한 문의 엑셀파일첨부파일 (6) 답변완료
예쁜나야 | 2025.05.13 | 추천 0 | 조회 80
예쁜나야 2025.05.13 - 80
78580
New 날짜와 시간 분할 방법 알려 주세요 엑셀파일첨부파일 (3) 답변완료
계양산 지기 | 2025.05.13 | 추천 0 | 조회 76
계양산 지기 2025.05.13 - 76
78575 VBA
New 엑셀 재고관리 프로그램 문의드립니다.. 첨부파일 (3)
SJ | 2025.05.13 | 추천 0 | 조회 104
SJ 2025.05.13 - 104
78570 대시보드
New 대시보드에 표 형식으로 표현도 가능한가요? 첨부파일 (2)
룰루랄라 | 2025.05.12 | 추천 0 | 조회 101
룰루랄라 2025.05.12 - 101
78569 함수/공식
New 서로 다른 양식의 견적서 엑셀 파일 한곳에 정리 하기 (5)
gh**** | 2025.05.12 | 추천 0 | 조회 119
gh**** 2025.05.12 - 119
78565 함수/공식
New 검색보고서 만들기 질문드립니다. 엑셀파일 (9) 답변완료
만식이햄 | 2025.05.12 | 추천 0 | 조회 97
만식이햄 2025.05.12 - 97
78563 VBA
New VBA 수정 부탁드립니다. ㅠ (8)
서비 | 2025.05.12 | 추천 0 | 조회 98
서비 2025.05.12 - 98
78560 함수/공식
New 어떻게 내용을 가져올수 있을지 고수님들의 해결방법들을 공유 받고 싶습니다!!.... 엑셀파일첨부파일 (2)
꾸르형 | 2025.05.12 | 추천 0 | 조회 56
꾸르형 2025.05.12 - 56
78559 파워쿼리/피벗
New 엑셀 자동화 질문 입니다... 엑셀파일 (2) 답변완료
안녕하세여11 | 2025.05.12 | 추천 0 | 조회 84
안녕하세여11 2025.05.12 - 84
78555 함수/공식
New 시트에서 원하는 열의 자료만 가져오고싶은데 아무리 해도 수식오류가 나서 도움을 구하고자 합니다 엑셀파일 (4) 답변완료
khs**** | 2025.05.12 | 추천 0 | 조회 52
khs**** 2025.05.12 - 52
78554 함수/공식
New 변동하는 절대참조값 적용 (6) 답변완료
화이또! | 2025.05.12 | 추천 0 | 조회 75
화이또! 2025.05.12 - 75
78553 대시보드
New 대시보드_슬라이서 자동으로 눌러지게 하는방법 첨부파일 (1)
검도림 | 2025.05.12 | 추천 0 | 조회 59
검도림 2025.05.12 - 59
78548 대시보드
New 어떤 엑셀을 적용해야하는 지 문의드립니다! (1)
룰루랄라 | 2025.05.11 | 추천 0 | 조회 77
룰루랄라 2025.05.11 - 77
78546 함수/공식
New 월별 매출액 자동입력할 수 있는 방법 또는 함수 궁금합니다! 엑셀파일 (2)
mmm1010 | 2025.05.11 | 추천 0 | 조회 101
mmm1010 2025.05.11 - 101
78544 함수/공식
New 중복값 제거 함수에 관하여 엑셀파일첨부파일 (1) 답변완료
김지훈(Derek) | 2025.05.11 | 추천 0 | 조회 86
김지훈(Derek) 2025.05.11 - 86
78543 함수/공식
New 데이터 추출 및 정렬관련 초보질문 엑셀파일첨부파일 (5) 답변완료
김지훈(Derek) | 2025.05.11 | 추천 0 | 조회 83
김지훈(Derek) 2025.05.11 - 83
78540 함수/공식
New 오빠두LIVE 219회 - 엑셀 '셀 병합' 자동화 보고서 만들기 오빠두엑셀님의 방법이 궁금합니다. 첨부파일
AURIC | 2025.05.10 | 추천 0 | 조회 69
AURIC 2025.05.10 - 69
78536 함수/공식
New 월별로 금액적용후 최종월에 차액을 가감 함수가 필요해요 엑셀파일 (1) 답변완료
낮은자 | 2025.05.10 | 추천 0 | 조회 73
낮은자 2025.05.10 - 73
78535 기능/도구
New 엑셀로 25x25 인쇄가 가능한가요? (1)
망나 | 2025.05.10 | 추천 0 | 조회 57
망나 2025.05.10 - 57
78534 파워쿼리/피벗
New 쿼리에 함수 적용한 열 추가 시 24:00:00 활용한 계산 함수 필요할 때. 첨부파일 (2) 답변완료
신노스케 | 2025.05.10 | 추천 0 | 조회 75
신노스케 2025.05.10 - 75
78531 차트/그래프
New 엑셀 차트 데이터테이블 엑셀파일첨부파일 (1)
| 2025.05.09 | 추천 0 | 조회 84
2025.05.09 - 84
78530 구글시트
New 구글 스프레드시트 함수 관련 질문입니다. 엑셀파일첨부파일 (2)
동그이 | 2025.05.09 | 추천 0 | 조회 73
동그이 2025.05.09 - 73
78528 구글시트
New 구글 스프레드시트를 외부 엑셀 파일과 연동하는 방법이 궁금합니다. (3)
머우터덩 | 2025.05.09 | 추천 0 | 조회 77
머우터덩 2025.05.09 - 77
78525 문서서식
New 업무가 진행이 안 될 정도로, 해당 파일이 느립니다! 엑셀파일 (2)
빌스택스 | 2025.05.09 | 추천 0 | 조회 103
빌스택스 2025.05.09 - 103
78520 기능/도구
New 하이퍼링크 명칭 해제 (1)
min | 2025.05.09 | 추천 0 | 조회 61
min 2025.05.09 - 61
78518 피벗테이블
New 피벗테이블 관련 화살표 질문 첨부파일
이모비니 | 2025.05.09 | 추천 0 | 조회 57
이모비니 2025.05.09 - 57
78516 함수/공식
New 호봉산정 엑셀 문의드립니다. 엑셀파일첨부파일 (2) 답변완료
아르카디안 | 2025.05.08 | 추천 0 | 조회 68
아르카디안 2025.05.08 - 68