다음을 통해 공유


Visual Basic의 LINQ to XML 개요

Visual Basic은 XML 리터럴 및 XML 축 속성을 통해 LINQ to XML을 지원합니다. 이렇게 하면 Visual Basic 코드에서 XML을 사용하기 위해 친숙하고 편리한 구문을 사용할 수 있습니다. XML 리터럴을 사용하면 코드에 직접 XML을 포함할 수 있습니다. XML 축 속성을 사용하면 자식 노드, 하위 노드 및 XML 리터럴의 특성에 액세스할 수 있습니다. 자세한 내용은 Visual Basic의 XML 리터럴 개요액세스 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 애플리케이션의 코드 숨김 페이지에 배치합니다.

재생 단추 관련 비디오 데모는 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 네임스페이스 별칭을 사용할 수 있습니다.

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)

참고하십시오