다음을 통해 공유


Visual Basic의 LINQ to XML 개요

Visual Basic에서는 XML 리터럴 또는 XML 축 속성을 통해 LINQ to XML을 지원합니다. 따라서 사용자의 Visual Basic 코드에서 XML을 사용하여 작업할 때 친숙하고 편리한 구문을 활용할 수 있습니다. XML 리터럴을 사용하면 XML을 사용자 코드에 직접 포함할 수 있습니다. XML 축 속성을 사용하면 자식 노드, 하위 노드 및 XML 리터럴 특성에 액세스할 수 있습니다. 자세한 내용은 XML 리터럴 개요(Visual Basic)Visual Basic에서 XML에 액세스를 참조하십시오.

LINQ to XML은 특히 LINQ(통합 언어 쿼리)를 활용하도록 디자인된 메모리 내 XML 프로그래밍 API입니다. LINQ API를 호출할 수도 있지만 Visual Basic을 사용해야만 XML 리터럴을 선언하고 XML 축 속성에 직접 액세스할 수 있습니다.

참고

XML 리터럴 및 XML 축 속성은 ASP.NET 페이지의 선언 코드에서 지원되지 않습니다. Visual Basic XML 기능을 사용하려면 사용자 코드를 ASP.NET 응용 프로그램의 코드 숨김 페이지에 넣습니다.

비디오에 링크 관련 비디오 데모를 보려면 How Do I: Get Started with LINQ to XML?How Do I: Create Excel Spreadsheets using LINQ to XML?을 참조하십시오.

XML 만들기

Visual Basic에서 XML 트리를 만드는 데는 두 가지 방법이 있습니다. 코드에서 XML 리터럴을 직접 선언하거나 LINQ API를 사용하여 트리를 만들 수 있습니다. 두 가지 프로세스 모두 코드에 XML 트리의 최종 구조를 반영할 수 있습니다. 예를 들어 다음 코드 예제에서는 XML 요소를 만듭니다.

Dim contact1 As XElement = 
    <contact>
      <name>Patrick Hines</name>
      <phone type="home">206-555-0144</phone>
      <phone type="work">425-555-0145</phone>
    </contact>

자세한 내용은 Visual Basic에서 XML 만들기를 참조하십시오.

XML 액세스 및 탐색

Visual Basic에서는 XML 구조를 액세스하고 탐색하기 위한 XML 축 속성을 제공합니다. 이 속성을 사용하면 XML 자식 요소 이름을 지정하여 XML 요소 및 특성에 액세스할 수 있습니다. 또는 LINQ 메서드를 명시적으로 호출하여 요소 및 특성을 탐색하고 찾는 방법이 있습니다. 예를 들어 다음 코드 예제에서는 XML 축 속성을 사용하여 XML 요소의 특성 및 자식 요소를 참조합니다. 코드 예제에서는 LINQ 쿼리를 사용하여 자식 요소를 검색하고 이를 XML 요소로 출력하여 효과적인 변환을 수행합니다.

' Place Imports statements at the top of your program.  
Imports <xmlns:ns="http://SomeNamespace">

Module Sample1

    Sub SampleTransform()

        ' Create test by using a global XML namespace prefix. 

        Dim contact = 
            <ns:contact>
                <ns:name>Patrick Hines</ns:name>
                <ns:phone ns:type="home">206-555-0144</ns:phone>
                <ns:phone ns:type="work">425-555-0145</ns:phone>
            </ns:contact>

        Dim phoneTypes = 
          <phoneTypes>
              <%= From phone In contact.<ns:phone> 
                  Select <type><%= phone.@ns:type %></type> 
              %>
          </phoneTypes>

        Console.WriteLine(phoneTypes)
    End Sub

End Module

자세한 내용은 Visual Basic에서 XML에 액세스를 참조하십시오.

XML 네임스페이스

Visual Basic에서는 Imports 문을 사용하여 전역 XML 네임스페이스에 대한 별칭을 지정합니다. 다음 예제에서는 Imports 문을 사용하여 XML 네임스페이스를 가져오는 방법을 보여 줍니다.

Imports <xmlns:ns="http://someNamespace">

XML 축 속성에 액세스하고 XML 문서 및 요소에 대한 XML 리터럴을 선언할 때 XML 네임스페이스 별칭을 사용할 수 있습니다.

GetXmlNamespace 연산자(Visual Basic)를 사용하여 특정 네임스페이스 접두사에 대한 XNamespace 개체를 검색할 수 있습니다.

자세한 내용은 Imports 문(XML 네임스페이스)을 참조하십시오.

XML 리터럴의 XML 네임스페이스 사용

다음 예제에서는 전역 네임스페이스인 ns를 사용하는 XElement 개체를 만드는 방법을 보여 줍니다.

Dim contact1 As XElement = 
    <ns:contact>
        <ns:name>Patrick Hines</ns:name>
        <ns:phone type="home">206-555-0144</ns:phone>
        <ns:phone type="work">425-555-0145</ns:phone>
    </ns:contact>

Console.WriteLine(contact1)

Visual Basic 컴파일러는 xmlns 특성을 사용하여 XML 네임스페이스 별칭이 포함된 XML 리터럴을 XML 네임스페이스를 사용하기 위해 XML 표기를 사용하는 코드로 변환합니다. 컴파일이 완료되면 이전 단원 예제에 나온 코드는 다음 예제와 기본적으로 동일한 실행 코드를 만듭니다.

Dim contact2 As XElement = 
    <ns1:contact xmlns:ns1="http://someNamespace">
        <ns1:name>Patrick Hines</ns1:name>
        <ns1:phone type="home">206-555-0144</ns1:phone>
        <ns1:phone type="work">425-555-0145</ns1:phone>
    </ns1:contact>

Console.WriteLine(contact2)

XML 축 속성의 XML 네임스페이스 사용

XML 리터럴에 선언된 XML 네임스페이스는 XML 축 속성에서는 사용할 수 없습니다. 그러나 전역 네임스페이스는 XML 축 속성에서 사용할 수 있습니다. 콜론을 사용하여 XML 네임스페이스 접두사와 로컬 요소 이름을 구분합니다. 예를 들면 다음과 같습니다.

Console.WriteLine("Contact name is: " & contact1.<ns:name>.Value)

참고 항목

기타 리소스

Visual Basic의 XML

Visual Basic에서 XML 만들기

Visual Basic에서 XML에 액세스

Visual Basic에서 XML 조작