XElement 및 XDocument 개체의 유효한 콘텐츠(LINQ to XML)
이 문서에서는 생성자에 전달할 수 있는 유효한 인수와 요소 및 문서에 콘텐츠를 추가하는 데 사용하는 메서드에 대해 설명합니다.
XElement 생성자에 유효한 형식
쿼리는 종종 XElement의 IEnumerable<T> 또는 XAttribute의 IEnumerable<T>로 평가됩니다. 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