Visual Basic의 LINQ to XML 개요

Visual Basic은 XML 리터럴 및 XML 축 속성을 통해 LINQ to XML을 지원합니다. 이렇게 하면 Visual Basic 코드에서 XML 작업을 위해 익숙하고 편리한 구문을 사용할 수 있습니다. XML 리터럴을 사용하면 코드에서 직접 XML을 포함할 수 있습니다. XML 축 속성을 사용하면 자식 노드, 하위 항목 노드, XML 리터럴의 특성에 액세스할 수 있습니다. 자세한 내용은 XML 리터럴 개요Visual Basic에서 XML 액세스를 참조하세요.

LINQ to XML은 LINQ(Language-Integrated Query)를 활용하도록 특별히 설계된 메모리 내 XML 프로그래밍 API입니다. LINQ API를 직접 호출할 수 있지만 Visual Basic에서만 XML 리터럴을 선언하고 XML 축 속성에 직접 액세스할 수 있도록 허용합니다.

참고 항목

XML 리터럴 및 XML 축 속성은 ASP.NET 페이지의 선언 코드에서 지원되지 않습니다. Visual Basic XML 기능을 사용하려면 ASP.NET 애플리케이션의 코드 숨김 페이지에 코드를 배치합니다.

Play button 관련 비디오 데모를 보려면 LINQ to XML을 시작하는 방법LINQ to XML을 사용하여 Excel 스프레드시트를 만드는 방법을 참조하세요.

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 연산자를 사용하여 특정 네임스페이스 접두사에 대한 XNamespace 개체를 검색할 수 있습니다.

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

XML 리터럴에서 XML 네임스페이스 사용

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

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 컴파일러는 XML 네임스페이스 별칭이 포함된 XML 리터럴을 xmlns 특성과 함께 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)

참고 항목