XElement 및 XDocument 개체의 유효한 콘텐츠(LINQ to XML)

이 문서에서는 생성자에 전달될 수 있는 유효한 인수에 대해 설명하고 내용을 요소와 문서에 추가하는 데 사용하는 메서드에 대한 정보를 제공합니다.

XElement 생성자의 유효한 형식

쿼리는 흔히 IEnumerable<T>XElement 또는 IEnumerable<T>XAttribute로 확인되며, XElement 또는 XAttribute 개체의 컬렉션은 XElement 생성자로 전달할 수 있습니다. 따라서 쿼리 결과를 XML 트리를 채우는 데 사용하는 메서드와 생성자에 콘텐츠로 전달하는 것이 편리합니다.

간단한 콘텐츠를 추가할 때 다음을 포함하여 다양한 형식이 이 메서드에 전달될 수 있습니다.

복잡한 콘텐츠를 추가할 때 다음을 포함하여 다양한 형식이 이 메서드에 전달될 수 있습니다.

개체가 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 노드를 새 내용으로 바꿉니다.

참고 항목