XElement 및 XDocument 개체의 유효한 콘텐츠(LINQ to XML)
이 문서에서는 생성자에 전달될 수 있는 유효한 인수에 대해 설명하고 내용을 요소와 문서에 추가하는 데 사용하는 메서드에 대한 정보를 제공합니다.
XElement 생성자의 유효한 형식
쿼리는 흔히 IEnumerable<T>의 XElement 또는 IEnumerable<T>의 XAttribute로 확인되며, XElement 또는 XAttribute 개체의 컬렉션은 XElement 생성자로 전달할 수 있습니다. 따라서 쿼리 결과를 XML 트리를 채우는 데 사용하는 메서드와 생성자에 콘텐츠로 전달하는 것이 편리합니다.
간단한 콘텐츠를 추가할 때 다음을 포함하여 다양한 형식이 이 메서드에 전달될 수 있습니다.
- String
- Double
- Single
- Decimal
- Boolean
- DateTime
- TimeSpan
- DateTimeOffset
Object.ToString
을 구현하는 임의의 형식- IEnumerable<T>을 구현하는 임의의 형식
복잡한 콘텐츠를 추가할 때 다음을 포함하여 다양한 형식이 이 메서드에 전달될 수 있습니다.
- XObject
- XNode
- XAttribute
- IEnumerable<T>을 구현하는 임의의 형식
개체가 IEnumerable<T>을 구현하는 경우 개체의 컬렉션이 열거되고 컬렉션의 모든 항목이 추가됩니다. 컬렉션에 XNode 또는 XAttribute 개체가 포함되어 있으면 컬렉션의 각 항목이 개별적으로 추가됩니다. 컬렉션에 텍스트(또는 텍스트로 변환된 개체)가 포함되어 있으면 컬렉션의 텍스트가 연결되어 단일 텍스트 노드로 추가됩니다.
내용이 null
이면 아무 것도 추가되지 않습니다. 컬렉션을 전달할 때 컬렉션의 항목은 null
일 수 있습니다. 컬렉션의 null
항목은 트리에 아무 영향도 미치지 않습니다.
추가된 특성은 포함하는 요소에서 고유한 이름을 갖고 있어야 합니다.
XNode 또는 XAttribute 개체를 추가할 때 새 내용에 부모가 없으면 개체가 XML 트리에 추가되기만 합니다. 새 내용이 이미 부모를 갖고 있고 다른 XML 트리의 일부이면 새 내용이 복제되고 새로 복제된 내용이 XML 트리에 추가됩니다.
XDocument 생성자의 유효한 형식
특성과 간단한 내용은 문서에 추가될 수 없습니다.
XDocument를 만들어야 하는 시나리오는 많지 않습니다. 대신 일반적으로 XElement 루트 노드를 사용하여 XML 트리를 만들 수 있습니다. 문서를 만들어야 하는 특정 요구 사항(예를 들어, 최상위 수준에서 처리 명령과 주석을 만들어야 하거나 문서 형식을 지원해야 하는 경우)이 없는 한 XElement를 루트 노드로 사용하는 것이 더 편리한 경우가 많습니다.
XDocument 생성자의 유효한 형식은 다음과 같습니다.
- 0개나 1개의 XDocumentType 개체. 문서 형식이 요소 앞에 나와야 합니다.
- 0개나 1개의 요소
- 0개 이상의 주석
- 0개 이상의 처리 명령
- 공백만 포함된 0개 이상의 텍스트 노드
콘텐츠 추가를 위한 생성자와 함수
다음 메서드를 사용하여 자식 내용을 XElement 또는 XDocument에 추가할 수 있습니다.
메서드 | 설명 |
---|---|
XElement | XElement를 생성합니다. |
XDocument | XDocument를 생성합니다. |
Add | XElement 또는 XDocument의 자식 내용 끝 부분에 내용을 추가합니다. |
AddAfterSelf | XNode 뒤에 내용을 추가합니다. |
AddBeforeSelf | XNode 앞에 내용을 추가합니다. |
AddFirst | XContainer의 자식 내용 시작 부분에 내용을 추가합니다. |
ReplaceAll | XElement의 모든 내용(자식 노드 및 특성)을 바꿉니다. |
ReplaceAttributes | XElement의 특성을 바꿉니다. |
ReplaceNodes | 자식 노드를 새 내용으로 바꿉니다. |
ReplaceWith | 노드를 새 내용으로 바꿉니다. |
참고 항목
.NET