XAttribute 클래스 개요

특성은 요소와 연결된 이름/값 쌍입니다. XAttribute 클래스는 XML 특성을 나타냅니다.

LINQ to XML의 특성 작업은 요소 작업과 유사합니다. 특성과 요소의 생성자는 유사합니다. 특성과 요소의 컬렉션을 검색하는 데 사용하는 메서드는 유사합니다. 특성 컬렉션의 LINQ 쿼리 식은 요소 컬렉션의 LINQ 쿼리 식과 유사하게 보입니다.

특성이 요소에 추가된 순서는 유지됩니다. 즉, 특성을 반복하는 경우 특성은 추가된 동일한 순서로 표시됩니다.

XAttribute 생성자

XAttribute 클래스의 다음 생성자는 가장 일반적으로 사용하는 생성자입니다.

생성자 Description
XAttribute(XName name, object content) XAttribute 개체를 만듭니다. name 인수는 특성의 이름을 지정하고, content는 특성의 내용을 지정합니다.

예: 특성이 있는 요소 만들기

다음 예에서는 특성이 포함된 요소를 만드는 일반적인 작업을 보여 줍니다.

XElement phone = new XElement("Phone",
    new XAttribute("Type", "Home"),
    "555-555-5555");
Console.WriteLine(phone);
Dim phone As XElement = <Phone Type="Home">555-555-5555</Phone>
Console.WriteLine(phone)

이 예제는 다음과 같은 출력을 생성합니다.

<Phone Type="Home">555-555-5555</Phone>

예: 특성의 함수 생성

다음 예에 표시된 것처럼 XElement 개체 생성과 함께 인라인으로 XAttribute 개체를 생성할 수 있습니다.

XElement c = new XElement("Customers",
    new XElement("Customer",
        new XElement("Name", "John Doe"),
        new XElement("PhoneNumbers",
            new XElement("Phone",
                new XAttribute("type", "home"),
                "555-555-5555"),
            new XElement("Phone",
                new XAttribute("type", "work"),
                "666-666-6666")
        )
    )
);
Console.WriteLine(c);
Dim c As XElement = _
    <Customers>
        <Customer>
            <Name>John Doe</Name>
            <PhoneNumbers>
                <Phone type="home">555-555-5555</Phone>
                <Phone type="work">666-666-6666</Phone>
            </PhoneNumbers>
        </Customer>
    </Customers>
Console.WriteLine(c)

이 예제는 다음과 같은 출력을 생성합니다.

<Customers>
  <Customer>
    <Name>John Doe</Name>
    <PhoneNumbers>
      <Phone type="home">555-555-5555</Phone>
      <Phone type="work">666-666-6666</Phone>
    </PhoneNumbers>
  </Customer>
</Customers>

특성은 노드가 아닙니다.

특성과 요소 사이에는 차이점이 있습니다. XAttribute 개체는 XML 트리의 노드가 아닙니다. 이는 XML 요소와 연결된 이름-값 쌍입니다. DOM(문서 개체 모델)과 대조적으로 이는 XML의 구조를 더욱 충실하게 반영합니다. XAttribute 개체는 실제로 XML 트리의 노드는 아니지만 XAttribute 개체 작업은 XElement 개체 작업과 유사합니다.

이 차이는 주로 노드 수준에서 XML 트리 작업을 하는 코드를 작성하는 개발자에게만 중요합니다. 많은 개발자들은 이러한 구분에 관심을 두지 않을 것입니다.

참고 항목