이 문서에서는 XML 리터럴 및 포함된 식을 사용하여 Visual Basic에서 XML 트리를 만드는 방법에 대한 정보를 제공합니다.
예: XML 리터럴을 사용하여 XML 트리 만들기
다음 예제에서는 XML 리터럴을 사용하여 XElement(이 경우 contacts
) 만드는 방법을 보여 줍니다.
Dim contacts As XElement = _
<Contacts>
<Contact>
<Name>Patrick Hines</Name>
<Phone>206-555-0144</Phone>
<Address>
<Street1>123 Main St</Street1>
<City>Mercer Island</City>
<State>WA</State>
<Postal>68042</Postal>
</Address>
</Contact>
</Contacts>
예: XML 리터럴을 사용하여 간단한 콘텐츠로 XElement 만들기
다음과 같이 간단한 콘텐츠가 포함된 항목을 만들 XElement 수 있습니다.
Dim n as XElement = <Customer>Adventure Works</Customer>
Console.WriteLine(n)
이 예제는 다음과 같은 출력을 생성합니다.
<Customer>Adventure Works</Customer>
예: XML 리터럴을 사용하여 빈 요소 만들기
다음과 같이 빈 XElement항목을 만들 수 있습니다.
Dim n As XElement = <Customer/>
Console.WriteLine(n)
이 예제는 다음과 같은 출력을 생성합니다.
<Customer />
포함된 식을 사용하여 콘텐츠 만들기
XML 리터럴의 중요한 기능은 포함된 식을 허용한다는 것입니다. 포함된 식을 사용하면 식을 평가하고 식의 결과를 XML 트리에 삽입할 수 있습니다. 식이 형식 XElement으로 평가되면 요소가 트리에 삽입됩니다. 식이 형식 XAttribute으로 계산되면 특성이 트리에 삽입됩니다. 요소와 특성이 유효한 경우에만 트리에 삽입할 수 있습니다.
단일 식만 포함된 식으로 전환할 수 있다는 점에 유의해야 합니다. 여러 문을 포함할 수 없습니다. 표현식이 한 줄 이상으로 확장되는 경우 줄 연속 문을 사용해야 합니다.
포함된 식을 사용하여 기존 노드(요소 포함) 및 특성을 새 XML 트리에 추가하고 기존 노드가 이미 부모인 경우 노드가 복제됩니다. 새로 복제된 노드는 새 XML 트리에 연결됩니다. 기존 노드가 부모 노드가 아닌 경우 노드는 단순히 새 XML 트리에 연결됩니다. 이 문서의 마지막 예제에서는 이를 보여 줍니다.
예: 포함된 식을 사용하여 요소 삽입
다음 예제에서는 포함된 식을 사용하여 트리에 요소를 삽입합니다.
xmlTree1 As XElement = _
<Root>
<Child>Contents</Child>
</Root>
Dim xmlTree2 As XElement = _
<Root>
<%= xmlTree1.<Child> %>
</Root>
Console.WriteLine(xmlTree2)
이 예제는 다음과 같은 출력을 생성합니다.
<Root>
<Child>Contents</Child>
</Root>
예: 콘텐츠에 포함된 표현 사용하기
포함된 식을 사용하여 요소의 콘텐츠를 제공할 수 있습니다.
Dim str As String
str = "Some content"
Dim root As XElement = <Root><%= str %></Root>
Console.WriteLine(root)
이 예제는 다음과 같은 출력을 생성합니다.
<Root>Some content</Root>
예: 포함된 식에서 LINQ 쿼리 사용
LINQ 쿼리의 결과를 사용하여 요소의 콘텐츠를 제공할 수 있습니다.
Dim arr As Integer() = {1, 2, 3}
Dim n As XElement = _
<Root>
<%= From i In arr Select <Child><%= i %></Child> %>
</Root>
Console.WriteLine(n)
이 예제는 다음과 같은 출력을 생성합니다.
<Root>
<Child>1</Child>
<Child>2</Child>
<Child>3</Child>
</Root>
예: 포함된 식을 사용하여 노드 이름 제공
포함된 식을 사용하여 특성 이름, 특성 값, 요소 이름 및 요소 값을 계산할 수도 있습니다.
Dim eleName As String = "ele"
Dim attName As String = "att"
Dim attValue As String = "aValue"
Dim eleValue As String = "eValue"
Dim n As XElement = _
<Root <%= attName %>=<%= attValue %>>
<<%= eleName %>>
<%= eleValue %>
</>
</Root>
Console.WriteLine(n)
이 예제는 다음과 같은 출력을 생성합니다.
<Root att="aValue">
<ele>eValue</ele>
</Root>
예: 포함된 식을 사용하여 노드 복제 및 연결
앞에서 설명한 것처럼 포함된 식을 사용하여 기존 노드(요소 포함)와 특성을 새 XML 트리에 추가하고 추가되는 노드가 이미 부모인 경우 노드가 복제되고 복제본이 새 XML 트리에 연결됩니다. 기존 노드가 부모 노드가 아닌 경우 새 XML 트리에 연결하기만 하면 됩니다.
다음 코드는 트리에 부모 요소를 추가하고 트리에 부모가 없는 요소를 추가할 때의 동작을 보여 줍니다.
' Create a tree with a child element.
Dim xmlTree1 As XElement = _
<Root>
<Child1>1</Child1>
</Root>
' Create an element that's not parented.
Dim child2 As XElement = <Child2>2</Child2>
' Create a tree and add Child1 and Child2 to it.
Dim xmlTree2 As XElement = _
<Root>
<%= xmlTree1.<Child1>(0) %>
<%= child2 %>
</Root>
' Compare Child1 identity.
Console.WriteLine("Child1 was {0}", _
IIf(xmlTree1.Element("Child1") Is xmlTree2.Element("Child1"), _
"attached", "cloned"))
' Compare Child2 identity.
Console.WriteLine("Child2 was {0}", _
IIf(child2 Is xmlTree2.Element("Child2"), _
"attached", "cloned"))
이 예제는 다음과 같은 출력을 생성합니다.
Child1 was cloned
Child2 was attached
참고하십시오
.NET