MSXML DOM을 프로그래밍할 때 contains() XPath 함수 사용

이 문서에서는 MSXML DOM을 contains() XPath 프로그래밍할 때 함수를 사용하는 방법을 보여줍니다.

원래 제품 버전: Microsoft XML
원래 KB 번호: 304265

요약

코드에서 MSXML(Microsoft XML) DOM(문서 개체 모델)을 사용하여 XML 문서를 로드하고 구문 분석하는 경우 데이터에 지정된 문자열 값 또는 단어가 포함된 특성이 있는 요소 및/또는 요소를 식별하는 것이 일반적인 프로그래밍 방식입니다. 이 문서에서는 XPath(XML Path Language) 문자열 함수를 사용하여 이 요구 사항을 구현하는 방법을 보여 주는 코드 샘플을 설명합니다.

단계별 예제

  1. 메모장에서 Books.xml이라는 새 XML 문서를 만들고 다음 XML을 붙여넣습니다.

    <?xml version="1.0"?>
    <!-- This file represents a fragment of a bookstore inventory database -->
    <bookstore specialty="novel">
     <book>
         <Title>Beginning XML</Title>
         <Publisher>Wrox</Publisher>
     </book>
     <book>
         <Title>Professional XML</Title>
         <Publisher>Wrox</Publisher>
     </book>
     <book>
         <Title>Programming ADO</Title>
         <author>
             <first-name>Mary</first-name>
             <last-name>Bob</last-name>
         </author>
         <datePublished>1/1/2000</datePublished>
         <Publisher>Microsoft Press</Publisher>
     </book>
    </bookstore>
    
  2. C 드라이브의 루트 폴더에 Books.xml 저장합니다.

  3. Microsoft Visual Basic에서 새 표준 EXE 프로젝트를 엽니다. Form1 은 기본적으로 만들어집니다.

  4. 프로젝트 메뉴에서 참조를 클릭한 다음 Microsoft XML 3.0 검사 상자를 선택합니다.

  5. 명령 단추를 끌어 Form1에 놓습니다.

  6. 명령 단추의 Click 이벤트 프로시저에 다음 코드를 복사하여 붙여넣습니다.

    Dim doc As MSXML2.DOMDocument
    Dim nlist As MSXML2.IXMLDOMNodeList
    Dim node As MSXML2.IXMLDOMNode
    
    Set doc = New MSXML2.DOMDocument
    doc.setProperty "SelectionLanguage", "XPath"
    doc.Load "c:\books.xml"
    Set nlist = doc.selectNodes("//book/Title[contains(.,'ADO')]")
    MsgBox "Matching Nodes : " & nlist.length
    
    For Each node In nlist
        Debug.Print node.nodeName & " : " & node.Text
    Next
    
  7. 앞의 코드는 Books.xml XML을 MSXML DOMDocument 개체의 instance 로드합니다. 그런 다음 함수를 사용하여 contains XPath ADO라는 단어가 포함된 모든 Book 타이틀을 식별하는 XPath 쿼리를 실행합니다. 마지막으로 For 루프는 선택한 노드를 반복하고 XPath 쿼리를 실행하여 식별된 일치하는 타이틀을 표시합니다.

  8. 함수의 contains XPath 첫 번째 매개 변수는 비교를 실행할 원본 노드 또는 문자열을 지정하는 데 사용됩니다. 두 번째 매개 변수는 원본 노드에서 찾을 단어 또는 문자열 값을 지정하는 문자열입니다. contains 함수의 두 번째 매개 변수로 제공되는 문자열 또는 단어는 대/소문자를 구분합니다.