XAttribute 클래스 개요
업데이트: November 2007
특성은 요소와 연결된 이름/값 쌍입니다. XAttribute 클래스는 XML 특성을 나타냅니다.
개요
LINQ to XML에서 특성 작업은 요소 작업과 유사합니다. 특성과 요소의 생성자는 유사합니다. 특성과 요소의 컬렉션을 검색하는 데 사용하는 메서드는 유사합니다. 특성 컬렉션의 LINQ 쿼리 식은 요소 컬렉션의 LINQ 쿼리 식과 매우 유사하게 보입니다.
특성이 요소에 추가된 순서는 유지됩니다. 즉, 특성을 반복하는 경우 특성은 추가된 동일한 순서로 표시됩니다.
XAttribute 생성자
XAttribute 클래스의 다음 생성자는 가장 일반적으로 사용하는 생성자입니다.
생성자 |
설명 |
---|---|
XAttribute(XName name, object content) |
XAttribute 개체를 만듭니다. name 인수는 특성의 이름을 지정하고, content는 특성의 내용을 지정합니다. |
특성을 사용하여 요소 만들기
다음 코드에서는 특성이 포함된 요소를 만드는 일반적인 작업을 보여 줍니다.
XElement phone = new XElement("Phone",
new XAttribute("Type", "Home"),
"555-555-5555");
Console.WriteLine(phone);
Visual Basic에서는 XML 리터럴을 사용할 수 있습니다.
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 트리 작업을 하는 코드를 작성하는 개발자에게만 중요합니다. 대부분의 개발자는 이 차이에 대해 염려하지 않습니다.